java设计模式之策略模式
来源:互联网 发布:j20弹仓 知乎 编辑:程序博客网 时间:2024/05/29 14:39
将算法封装成类,可以在运行时动态的改变行为。
策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
适用情况:
1,许多相关的类,仅仅是行为有异。系统只需要在几种算法中动态的选择一种即可
2,需要使用算法的不同变体。例如,可能会定义一些反映不同的空间 /时间权衡的算法。当这些变体实现为一个算法的类层次时 ,可以使用策略模式。
3,算法使用客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构。
4,一个类定义了多种行为 , 并且这些行为在这个类的操作中以多个条件语句的形式出现。将相关的条件分支移入它们各自的Strategy类中以代替这些条件语句。
基本结构:
环境类(Context):用一个ConcreteStrategy对象来配置。维护一个对Strategy对象的引用。可定义一个接口来让Strategy访问它的数据。
抽象策略类(Strategy):定义所有支持的算法的公共接口。 Context使用这个接口来调用某ConcreteStrategy定义的算法。
具体策略类(ConcreteStrategy):以Strategy接口实现某具体算法。
例子:
http://blog.csdn.net/hguisu/article/details/7558249
0 0
- Java设计模式之策略设计模式
- Java设计模式之策略设计模式
- Java设计模式之策略
- Java设计模式之策略模式
- java设计模式之 策略模式
- JAVA 设计模式之 策略模式
- java设计模式之策略模式 Strategy
- java设计模式之策略模式
- java设计模式之策略模式
- 浅谈Java设计模式之---策略模式
- java设计模式之策略模式
- Java设计模式之策略模式
- java设计模式之策略模式
- Java设计模式之策略模式
- Java设计模式之策略模式
- java设计模式之策略模式
- 设计模式之策略模式(java)
- Java设计模式笔记之策略模式
- Facade Pattern 外观模式
- Java-设计模式(Adapter适配器模式)
- javay设计模式学习笔记
- 扩展KMP
- 关Atmega16单片机进入“编程模式失败”问题的解决办法之一
- java设计模式之策略模式
- 删除全部文本内容的vi 命令是? linux 查看哪些用户是自定义增加的?
- java Future
- C语言中结构体赋值的讨论
- hdu1166敌兵布阵
- GCD之二:dispatch_queue_create
- 用Maven创建Hibernate项目
- 整理一些连接
- C++中cut与wcout区别