策略模式
来源:互联网 发布:淘宝店宝贝照片怎么拍 编辑:程序博客网 时间:2024/06/06 04:38
策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。这时候可以将这些不同的行为封装成一个一个的类,实现同一个接口,供在运行时会改变行为的类调用。
demo:
不同方法抽象出来的供外部调用的接口:
public interface Strategy { void execute();}
具体的方法:
public class StrategyA implements Strategy { @Override public void execute() { System.out.println("我是方法A"); }}public class StrategyB implements Strategy { @Override public void execute() { System.out.println("我是方法B"); }}public class StrategyC implements Strategy { @Override public void execute() { System.out.println("我是方法C"); }}
调用以上不同方法的类:
public class ContextClass { private Strategy mStrategy; public void doMethod(Strategy strategy) { mStrategy = strategy; mStrategy.execute(); }}
调用:
ContextClass cc = new ContextClass();cc.doMethod(new StrategyA()); //调用方法A了cc.doMethod(new StrategyB()); //我现在调用B了cc.doMethod(new StrategyC()); //我又需要调用C了
优点: 算法可以自由切换。避免使用很多的if…else判断。扩展性良好。
阅读全文
0 0
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- jdbc
- iOS-线程相关
- Android中更换头像功能的实现
- 初识python
- 深入C++的运算符重载
- 策略模式
- C++学习笔记 4th —— 万能流程控制if语句
- Java动态绑定
- iOS-Block相关
- LeetCode之路:217. Contains Duplicate
- MySql的基本使用,数据库,表,数据的基本操作
- opencv学习笔记-3,图像混合
- ubuntu下命令行下光标的控制
- android studio svn自动添加到版本控制