设计模式学习笔记——策略模式
来源:互联网 发布:市政给排水设计软件 编辑:程序博客网 时间:2024/05/22 10:38
定义:
定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。
通用类图如下:
策略模式的优点:
1、算法可以自由切换
2、避免了使用多重条件判断
3、扩展性良好
策略模式的缺点:
所有策略类都需要对外暴露,上层模块必须知道有哪些策略,然后才能决定使用哪个策略,这与迪米特法则是相违背的,可以混合工厂方法模式、代理模式等解决这个缺点。
通用代码如下:
public interface Strategy {public void doSomething();}
public class ConcreteStrategy1 implements Strategy {@Overridepublic void doSomething() {System.out.println("strategy 1 is used...");}}
public class ConcreteStrategy2 implements Strategy {@Overridepublic void doSomething() {System.out.println("strategy 2 is used...");}}
public class Context {private Strategy strategy;public Context(Strategy strategy){this.strategy=strategy;}public void setStrategy(Strategy strategy) {this.strategy = strategy;}public void doSomething(){this.strategy.doSomething();}}
public class Client {public static void main(String[] args) {Strategy cs1=new ConcreteStrategy1();Context context=new Context(cs1);context.doSomething();Strategy cs2=new ConcreteStrategy2();context.setStrategy(cs2);context.doSomething();}}
- 设计模式学习笔记—策略模式
- 设计模式学习笔记——策略模式
- 《HeadFirst设计模式》学习笔记——策略模式
- 设计模式学习笔记——策略模式
- 设计模式学习笔记——策略模式
- 设计模式学习笔记——策略模式
- Head First 设计模式学习笔记 ——策略模式
- 设计模式学习笔记——策略模式
- 设计模式学习笔记——策略(Strategy)模式
- 学习笔记——JAVA设计模式<18>策略模式
- 二、策略模式——设计模式学习笔记
- 设计模式学习笔记(三)—-Strategy策略模式
- 设计模式学习笔记(三)—Strategy策略模式
- 设计模式笔记——策略模式
- 设计模式笔记——策略模式
- 设计模式学习——策略模式
- 设计模式学习—策略模式
- 策略设计模式--学习笔记
- 批处理运行java抛出%ERRORLEVEL%
- Ubuntu下安装JDK/JRE受难记!
- 动态行转列
- Trie树|字典树的简介及实现
- 汇编开发环境搭建以及LNK2001:unresolved external symbol __CorDllMain@错误
- 设计模式学习笔记——策略模式
- 禁止转屏
- Oracle的锁表与解锁
- C++预处理命令
- URL传递中文参数乱码问题
- 如何用代码实现iPhone手机软件注销和手机重启
- VMware kernel headers for versions ... not found解决办法
- SVN中tag、 branch 、trunk的区别
- 提高 Dojo Grid 的数据处理性能