策略模式(Strategy)
定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。
CashSuper: 收费计算策略抽象类
正常收费类: 正常收费。acceptCash() 办法 直接返回金额
打折收费类: 需要在构造器中初始化打折参数 在acceptCash() 办法进行打折计算
满多少返利类:需要在构造器中初始化 满多少条件 参数。返利多少 参数,在acceptCash() 办法进行计算。满足条件,总金额-返利金额=返回金额。
客户端使用的时候。只需要 new CashContext(“判断参数”)。然后调用 getResult()。得到最终的计算结果。因为 CashContext 类的构造器根据传入的参数已经得到了具体的计算策略对象了。
原文:https://www.cnblogs.com/xiaoyangxiaoen/p/12360827.html