если много параметров и возможно расширение - можно Спецификацию использовать (в которой будет например кол-во товаров, их тип, может еще что в будущем)
для простого случая - создавайте 1 базовый класс, и 2 подкласса
общий метод содержит все что только может быть
ICalculator
{
int GetCost(int count)
}
FixedCalculator : ICalculator
{
int _cost;
FixedCalculator (int cost)
{
_cost = cost;
}
int GetCost(int count)
{
return count * _cost;
}
ProgressionCalculator : ICalculator
{
int _costBase; // базовая цена плюс..
int _costDiscount; // скидка (минус процент или минус фикс) за каждые Step штук
int _costDiscountStep;
ProgressionCalculator(int cost, int costDiscount, int costDiscountStep)
{
_cost = cost;
_costDiscount = costDiscount;
_costDiscountStep = costDiscountStep;
}
int GetCost(int count)
{
return FORMULA
}