策略模式(1)
2016-03-09 09:16
274 查看
策略模式定义:分别封装行为接口,实现算法族,超类里放行为接口的对象,在子类里具体设定行为对象。原则就是,分离变化部分,封装接口,基于接口编程各种功能。此模式让行为算法的变化独立于算法的使用者。
策略模式注意点:
分析项目中的变化部分与不变部分
多用组合少用继承;用行为类组合,而不是行为的继承。更有弹性
案例1:
在三国杀里面,我们每个玩家都是一个独立的对象。有时候我们会抽到一些武器卡,每个对象只能持有一个武器。对于这种情况我们及时没有策略模式的概念,也会很自然的想到以下方案
案例2:在HttpClient中,HttpClient提供了很多种浏览器策略,但是用户具体实例化浏览器对象时,浏览器采取何种策略,由用户自己选择。这种也是采用策略模式的思想,提取变化部分,抽象成接口,在实现其各种子类,再动态称为浏览器对象的字段
策略模式注意点:
分析项目中的变化部分与不变部分
多用组合少用继承;用行为类组合,而不是行为的继承。更有弹性
案例1:
在三国杀里面,我们每个玩家都是一个独立的对象。有时候我们会抽到一些武器卡,每个对象只能持有一个武器。对于这种情况我们及时没有策略模式的概念,也会很自然的想到以下方案
相关文章推荐
- ping+telnet
- 嵌入式 hi3518x平台h264+g711a封装mp4代码demo
- 用Maven创建第一个web项目
- EasyUI-Tree
- 面试前端工程师
- python之os模块
- SQL-语句实现九九乘法表
- HUST 1602 - Substring
- 羊皮书APP (Android版)开发系列(二)日志工具类
- MD5算法原理
- HUST 1602 - Substring
- 发布 学习进度条 博客要求
- 增长黑客内容摘要(四五六章)
- Delphi第三方组件安装DCU.PAS.DPK.BPL.ActiveX控件
- 后台预加载(完善版),可加载多组图片
- 爱加密Android APk 原理解析
- 反射及JDK1.5新特性
- thinkpad E431机器 怎么让直接按F1换为按住fn再按F1?.
- 音频时间获取
- 83. Remove Duplicates from Sorted List