我正在寻找最佳技巧,以确保我在以下情况下遵循开放/封闭原则。
基本上,我继承了一些需要进行大量修改的扩展噩梦代码:
public enum Basis {
Basis1,
Basis2
}
public class BenefitA {
public Basis Basis {get;set;}
public int Amount {get;set;}
}
public class BenefitB {
public Basis Basis {get;set;}
public int Amount {get;set;}
}
public class RequestA {
public BenefitA {get;set;}
public int Age {get;set;}
public bool Validate()
{
if (BenefitA.Basis == Basis.Basis1 && Age > 50)
{
return false;
}
else if (BenefitA.Basis == Basis.Basis2 && Age < 50)
{
return false;
}
return true;
}
}
想象一下,还有更多的好处和更多的请求,我需要在Basis枚举中添加第三个值。
我现在必须进入所有请求并为新值编写新逻辑。
有更好的方法吗?
由于