策略模式学习
2012-06-23 21:15
155 查看
策略模式定义了一组算法族,用具有相同接口的类将算法进行封装,让他们相互之间可以替换,是的算法的变化独立于使用算法的客户端。
1. 策略模式三个原则:
封装变化
面向接口编程,而非面向实习编程
多用组合,少用继承
2. 策略模式的三种角色:
抽象策略角色:为算法组定义一组接口
具体策略角色:算法的具体实现类,每一个算法都必须实现抽象策略角色所定义的接口。
环境角色:持有策略类的引用,总被客户端调用
3. 好处:由于算法和环境相分离,因此算法的改变不会影响到环境角色。
4 缺点:客户端必需清楚有哪些策略类,以便可以灵活使用,另外,可以造成存在过多的策略类。
解决方法:使用工厂模式
1. 策略模式三个原则:
封装变化
面向接口编程,而非面向实习编程
多用组合,少用继承
2. 策略模式的三种角色:
抽象策略角色:为算法组定义一组接口
具体策略角色:算法的具体实现类,每一个算法都必须实现抽象策略角色所定义的接口。
环境角色:持有策略类的引用,总被客户端调用
3. 好处:由于算法和环境相分离,因此算法的改变不会影响到环境角色。
4 缺点:客户端必需清楚有哪些策略类,以便可以灵活使用,另外,可以造成存在过多的策略类。
解决方法:使用工厂模式
相关文章推荐
- 二、策略模式——设计模式学习笔记
- HeadFirst设计模式学习--策略模式(Strategy Pattern)
- 设计模式学习一之策略模式1
- 学习一策略模式(strategy)
- 设计模式学习之——策略模式
- 设计模式学习之策略模式:报价管理系统
- 设计模式学习之策略模式
- java学习笔记-设计模式14(策略模式)
- 设计模式之禅学习笔记--策略模式
- OpenCV 2 学习笔记(10): 算法的基本设计模式<1>:策略模式(strategy pattern)
- PHP学习记录----策略模式
- Java设计模式(学习整理)---策略模式
- 设计模式学习之简单工厂模式和策略模式
- 设计模式学习笔记-策略模式
- JavaScript设计模式之策略模式(学习笔记)
- 设计模式学习总结(一)策略模式Strategy Pattern
- 【软考学习】设计模式——策略模式
- Android开发框架/库学习,设计模式之策略模式
- 设计模式学习笔记2-----策略模式
- (学习笔记)设计模式之策略模式