Полиморфные Перечисления для обработки состояний
Как я могу обрабатывать Enums без использования switch или if операторов в C #?
Например
enum Pricemethod
{
Max,
Min,
Average
}
... и у меня есть статья класса
public class Article
{
private List _pricehistorie;
public List Pricehistorie
{
get { return _pricehistorie; }
set { _pricehistorie = value; }
}
public Pricemethod Pricemethod { get; set; }
public double Price
{
get {
switch (Pricemethod)
{
case Pricemethod.Average: return Average();
case Pricemethod.Max: return Max();
case Pricemethod.Min: return Min();
}
}
}
}
Я хочу избежать заявления переключателя и сделать его общим.
Для получения конкретного метода определения цены вызовите конкретный расчет и верните его.
get { return CalculatedPrice(Pricemethod); }
Какой шаблон использовать здесь, и, возможно, у кого-то есть хорошая идея реализации. Искал уже шаблон состояния, но я не думаю, что это правильный.