设计模式笔记——Strategy
来源:互联网 发布:java multiple points 编辑:程序博客网 时间:2024/05/17 00:56
策略模式Strategy
定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。
策略模式是一种定义一些列算法的方法,所有这些算法完成的工作相同,但是实现不同,它可以用相同的方式调用所有的算法,减少各种算法类与使用算法类之间的耦合。
Strategy类层次为Context定义了一系列的可重用的算法或者行为。继承有助于析取出这些算法中的公共功能。
当不同的行为堆砌在一个类里面的时候,就很难避免用条件语句来选择合适的行为。将这些行为封装在独立的Strategy类中,可以使用这些行为的类中消除条件语句。
策略模式可以用来封装几乎任何类型的规则。只要在分析过程中听到需要在不同世界应用不同的业务规则,就可以考虑使用策略模式处理这变化的可能性。
package strategy.pattern;public class StrategyPattern {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubContext context;context=new Context(new ConcreteStrategyA());context.ContextInterface();context=new Context(new ConcreteStrategyB());context.ContextInterface();context=new Context(new ConcreteStrategyC());context.ContextInterface();}}
package strategy.pattern;public interface Strategy {public void AlgorithmInterface();}
package strategy.pattern;public class Context {private Strategy stragety;public Context(Strategy stragety){this.stragety=stragety;}public void ContextInterface(){stragety.AlgorithmInterface();}}
package strategy.pattern;public class ConcreteStrategyA implements Strategy {@Overridepublic void AlgorithmInterface() {// TODO Auto-generated method stubSystem.out.println("Concrete Algorithm A");}}
package strategy.pattern;public class ConcreteStrategyB implements Strategy {@Overridepublic void AlgorithmInterface() {// TODO Auto-generated method stubSystem.out.println("Concrete Algorithm B");}}
package strategy.pattern;public class ConcreteStrategyC implements Strategy {@Overridepublic void AlgorithmInterface() {// TODO Auto-generated method stubSystem.out.println("Concrete Algorithm C");}}
- 设计模式笔记——Strategy
- 设计模式——策略模式(Strategy) 笔记
- 设计模式学习笔记——策略(Strategy)模式
- 设计模式学习笔记(三)—-Strategy策略模式
- 设计模式学习笔记(三)—Strategy策略模式
- Java设计模式—strategy
- 设计模式5—Strategy设计模式
- HeadFirst 设计模式阅读笔记(一)—— strategy
- 设计模式——策略模式(Strategy)
- 设计模式——Strategy策略模式
- .Net中的设计模式—Strategy模式
- .Net中的设计模式—Strategy模式
- JAVA设计模式—策略模式(Strategy)
- 笔记:Gof设计模式--Strategy
- Java设计模式 —— 策略(Strategy)
- Java设计模式——策略(Strategy)
- Java设计模式—— 策略(Strategy)
- 设计模式学习—Strategy(策略)
- Network Link Conditioner模拟不同网络环境
- 本地通知
- POJ 3687Labeling Balls(拓扑排序)
- 利用windows提供的advapi32.dll进行MD5加密
- android TextView空间的setTextSize()方法在真机上运行大小问题
- 设计模式笔记——Strategy
- java SE、java EE和java ME的区别
- 窗体控件闪烁
- Intent可以传递的数据类型
- Uncompressing Linux... done, booting the kernel
- myeclipse9.1安装反编译插件
- Extjs-实用工具 用Ext.Utils.CSS切换主题和管理CSS样式
- 软件测试方法大汇总
- winpe安装windows2003,硬盘winpe安装windows2003,无光驱硬盘安装windows2003