设计模式_策略模式

先看个例子:一个商品需要参加满减活动满100减30?

  定义商品类【Product】,属性只有【price】,定义满减方法【getPrice】。

问题:如果要新增其它满减活动怎么做?

  新增IF条件     ×,这对于后面的代码维护很不友好,并且会带来频繁的线上迭代。

如何应用策略模式解决这个问题呢?

  定义商品类【Product】,属性只有【price】。

  定义【折扣接口】,创建不同的【折扣类】接口,如100-20。

  谁来执行?定义【折扣使用类】。

  执行哪个折扣?定义【折扣工厂类】。

  执行结果:

  

总结:优雅,太优雅了。

  第一步:先抽象出一个接口,里面的方法就是抽象的业务处理

  第二步:再新建多个实现类,每个实现类对应的就是每个不同的业务处理逻辑

 第三步:最后新建一个业务处理的上下文类。用于具体的业务处理
 使用场景:

  1、多个类只有在算法或行为上稍有不同的场景

  2、算法需要自由切换的场景
  3、需要屏蔽算法规则的场景

posted @ 2022-09-01 17:28  好吃的辣条  阅读(41)  评论(0)    收藏  举报