使用SOLID打开/关闭原理与枚举和验证的技术

时间:2016-10-06 15:52:28

标签: c# enums open-closed-principle

我正在寻找最佳技巧,以确保我在以下情况下遵循开放/封闭原则。

基本上,我继承了一些需要进行大量修改的扩展噩梦代码:

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枚举中添加第三个值。

我现在必须进入所有请求并为新值编写新逻辑。

有更好的方法吗?

由于

0 个答案:

没有答案