Java - Generic для обработки платежей с помощью стратегического шаблонаJAVA

Программисты JAVA общаются здесь
Anonymous
Java - Generic для обработки платежей с помощью стратегического шаблона

Сообщение Anonymous »

Я пытаюсь реализовать подход с шаблоном стратегии для обработки платежей в моей весной приложении на основе Webflux.// Model interface
public interface PaymentModel {

}

// Base model with attributes needed for all payment types
public class BaseModel implements PaymentModel {

private Float amount;
private Integer userId;
}

public class SquareCardModel extends BaseModel {

private String merchantId;
private String device;
private String orderId;

}

public class StripeCardModel extends BaseModel {

private String merchantId;
private String orderId;

}

public class CashModel extends BaseModel {

private String name;
private String orderId;

}

класс службы,
@Service
public interface PaymentService {

Mono pay(T model);

String method();
}

@Service
public class CashPaymentService implements PaymentService {

private static final String PAYMENT_METHOD = "cash";

@Override
public Mono pay(CashModel model) {
// TODO Auto-generated method stub
return null;
}

@Override
public String method() {
return PAYMENT_METHOD;
}

}

@Service
public class SquarePaymentService implements PaymentService {

private static final String PAYMENT_METHOD = "cash";

@Override
public Mono pay(SquareCardModel model) {
// TODO Auto-generated method stub
return null;
}

@Override
public String method() {
return PAYMENT_METHOD;
}

}

@Service
public class StripePaymentService implements PaymentService {

private static final String PAYMENT_METHOD = "cash";

@Override
public Mono pay(SquareCardModel model) {
// TODO Auto-generated method stub
return null;
}

@Override
public String method() {
return PAYMENT_METHOD;
}

}

фабричный класс,
@Service
public class PaymentFactory {

private final List
> paymentServices;

@Autowired
public PaymentFactory(List

Подробнее здесь: https://stackoverflow.com/questions/703 ... gy-pattern

Вернуться в «JAVA»