Enzymy polimorficzne do obsługi stanu
jak obsłużyć Enums bez użycia instrukcji switch lub if w C #?
Na przykład
enum Pricemethod
{
Max,
Min,
Average
}
... i mam artykuł klasy
public class Article
{
private List<Double> _pricehistorie;
public List<Double> 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();
}
}
}
}
chcę uniknąć instrukcji switch i uczynić ją ogólną.
W przypadku konkretnego Pricemethod wezwij konkretną kalkulację i zwróć ją.
get { return CalculatedPrice(Pricemethod); }
Jaki wzór ma tu być użyty, a może ktoś ma dobry pomysł na wdrożenie. Przeszukano już wzorzec stanu, ale nie sądzę, aby był to właściwy.