策略模式精髓

应用场景

项目中,如果遇到这种需求,根据一些条件不同,行为也不同。比如计税业务,根据国家的不同,计税方式不同。行为在某些场景下是需要相互替换的。这样就需要把变化的部分进行封装,这就是策略模式的应用场景。最简单的判断方式就是代码中有大量的if else 或者switch case,而且这些分支在未来还是可以增加的。这就非常需要用策略模式。不然不符合开闭原则。

设计思想

定义一个抽象类或者接口,声明变化的行为方法,让不同场景的子类去实现该方法。这样客户端调用时只需要引用这个父类,而不需要依赖具体的实现类,从而实现在不同的场景下,创建不同的子类,赋值给父类的引用,调用子类的行为。这样就实现了晚绑定,也符合开闭原则,如果需求新增加一个行为,只需要新增一种该场景下的子类,实现父类的行为方法即可。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 参考资料:菜鸟教程之设计模式 设计模式概述 设计模式(Design pattern)代表了最佳的实践,通常被有经验...
    Steven1997阅读 4,905评论 1 12
  • 自从进入六月,除了政治事件,最热门的话题就是世界杯,毕竟是每四年才有一次的盛会,堪比奥运会呀。现在小组赛都进程过半...
    幽灵zyy阅读 1,209评论 0 2
  • 这段时间…有点衰… 一大波考试来袭… 本宝宝不堪一击… 为了对付这狗日的考试… 矫情的写作爱好被搁置… LOL一天...
    对白无伤风雅阅读 2,444评论 0 0
  • Java 篇 抽象类 定义 抽象类是使用关键字 abstract 声明的类。抽象类与普通类的最大区别是抽象类不能被...
    bookislife阅读 4,294评论 0 0
  • vimrc 的配置 通过
    Tim_Lee阅读 1,638评论 0 0