策略模式
定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的用户。减少了各种算法类与使用算法类之间的耦合。
Strategy(定义所有公共接口)类层次为Context定义了一系列的可供重的算法和行为。继承有助于析取出这算法中的公共功能(计算费用的结果GetResult())。
简化了单元测试,因为每个算法都有自己的类,可以通过自己的接口单独测试。
CashSuper 超类
所有收款策略的爸爸,acceptCash抽象方法。
CashNormal,CashRebate,CashReturn 不同的收款策略
重写acceptCash。如有自己的参数,需要构造函数。
double.Parse()用来将字符串类型转换为双精度浮点类型。
CashContext 现金类
创造对象,传入策略,并使用对应的方法。