形象例子:

  跟不同类型的MM约会,要用不同的策略,有的请电影比较好,有的则去吃小吃效果不错,有的去海边浪漫最合适,单目的都是为了得到MM的芳心,我的追MM锦囊中有好多Strategy哦。

策略模式:

  策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情
况下发生变化。策略模式把行为和环境分开。环境类负责维持和查询行为类,各种算法在具体的策略类中提供。由于算法和环境独立开来,算法的增减,修改都不会影响到环境和客户端。

作用:
  定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换.本模式使得算法可独立于使用它的客户而变化.

UML结构图:

解析:
  简而言之一句话,Strategy模式是对算法的封装.处理一个问题的时候可能有多种算法,这些算法的接口(输入参数,输出参数等)都是一致的,那么可以考虑采用Strategy模式对这些算法进行封装,在基类中定义一个函数接口就可以了.

最新文章

  1. OC编程之道-接口适配之适配器
  2. 大前端学习笔记整理【一】CSS盒模型与基于盒模型的6种元素居中方案
  3. 《BI那点儿事》数据流转换——审核
  4. 5.cadence原理图上[原创]
  5. HDU2110+母函数
  6. 使用Calendar获取近三年的财务信息
  7. HR系统邮件审批功能总结
  8. 关于Java的对象、数组、String类的具体用法
  9. The sum of numbers form 0 to n.(20.9.2017)
  10. Git和Eclipse的使用、上传、部署
  11. vs2012密钥
  12. pip无法正常使用卸载并重新安装
  13. Python 爬虫一 简介
  14. STM32 Controller area network (bxCAN) Identifier filtering
  15. Hopper Disassembler v4 ( The macOS Disassembler, Decompiler and Debugger)
  16. 魔法上网之Ubuntu部署“酸酸”
  17. MSTest DeploymentItemAttribute
  18. Python-S9——Day100-Web前端框架之Vue
  19. HDFS源码分析数据块复制监控线程ReplicationMonitor(一)
  20. Qt学习--初学注意事项

热门文章

  1. Linux学习笔记(7)-系统资源查看
  2. 超简单的卸载ORACLE 11g
  3. jQuery.serializeArray() 函数详解
  4. java模拟OSUnMapTbl[]
  5. [转载]OpenFileDialog对话框Filter属性
  6. Android支付接入(二):移动游戏基地
  7. Redis-PHP-Hash 表相关API
  8. hdu 3927 Math Geek
  9. codeforces #310 div1 B
  10. Armitage主屏幕说明与命令行启动