首页 > 其他 > 详细

设计模式-策略模式

时间:2019-11-23 19:54:10      阅读:87      评论:0      收藏:0      [点我收藏+]
  1. 定义: Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from the clients that use it. (定义一组算法, 将每个算法都封装起来, 并且使它们之间可以互换. 策略模式使得算法可以独立于客户端变化.)

  2. 类图:

    [UML 类图]技术分享图片

  3. UML 类图分析: Context 叫做上下文, 起承上启下的封装作用, 屏蔽客户端对策略算法的直接访问, 客户端只需要调用 Context#operation() 方法即可调用底层的策略方法. Strategy 为策略接口, 声明策略算法方法, 具体策略需要实现 Strategy 接口, 如 ConcretedStrategyA, ConcretedStrategyB.

  4. 策略模式的应用: javax.servlet.http.HttpServlet#service() 方法, java.util.Comparator#compare() 方法, javax.servlet.Filter#doFilter() 方法

  5. 策略模式的不足: 增加新的策略就需要增加新的类, 策略类需要对外暴露, 客户端需要知道具体策略的存在.

  6. 策略模式的改进: 可以在 Context 类中使用简单工厂模式来完成对具体策略的创建, 这样客户端就不需要知道具体有哪些类型的策略了.

设计模式-策略模式

原文:https://www.cnblogs.com/sparkchan/p/11919414.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!