Какая наиболее подходящая модель, которая может быть использована для метода ниже. Я склоняюсь к шаблону стратегии для операторов switch, но как насчет if. Также, если у меня будут разные скидки, следует ли использовать шаблон стратегии?Стратегия платежей в корзине
public void AddOrder(PaymentType paymentType, OrderType orderType)
{
if (orderType == OrderType.Sale)
{
switch (paymentType)
{
case PaymentType.Cash:
// Do cash calculations here
break;
case PaymentType.CreditCard:
// Do credit card calculations here
break;
}
}
else if (orderType == OrderType.Refund)
{
switch (paymentType)
{
case PaymentType.Cash:
// Do cash calculations here
break;
case PaymentType.CreditCard:
// Do credit card calculations here
break;
}
}
}
Благодаря
Stratergy pattern - лучший образец в этой ситуации, но вы также можете использовать узор декоратора и украсить продукт соответствующими налогами –
Спасибо Ajay. Как будет реализована стратегия? Я имею в виду, будет ли у меня шаблон стратегии для определения OrderType, а затем внутри него другой шаблон стратегии для PaymentType? – gnaungayan