设计模式_策略模式
先看个例子:一个商品需要参加满减活动满100减30?
定义商品类【Product】,属性只有【price】,定义满减方法【getPrice】。
问题:如果要新增其它满减活动怎么做?
新增IF条件 ×,这对于后面的代码维护很不友好,并且会带来频繁的线上迭代。
如何应用策略模式解决这个问题呢?
定义商品类【Product】,属性只有【price】。
定义【折扣接口】,创建不同的【折扣类】接口,如100-20。
谁来执行?定义【折扣使用类】。
执行哪个折扣?定义【折扣工厂类】。
执行结果:
总结:优雅,太优雅了。
第一步:先抽象出一个接口,里面的方法就是抽象的业务处理
第二步:再新建多个实现类,每个实现类对应的就是每个不同的业务处理逻辑
第三步:最后新建一个业务处理的上下文类。用于具体的业务处理
使用场景:
1、多个类只有在算法或行为上稍有不同的场景
2、算法需要自由切换的场景
3、需要屏蔽算法规则的场景