策略模式的使用
2016-04-09 11:53
387 查看
首先建立一个接口,用于定义通用意义上的策略可以建立任意多个继承策略接口的类,每个类定义一个策略建立一个用于执行策略的类,该类的构造方法要包含一个策略接口作为输入,这样做的好处在于在构建这个类的实例时,构造函数可以用任意一个继承策略接口的类作为输入,策略的执行方式也可以被统一起来在主函数中构建一个执行策略的类,并在构造这个类时写入要使用的策略,接着只要调用策略执行类中的执行方法便可以执行该策略
//策略模式 public class StrategyPattern { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //随着Context()括号中内容的变化,可以执行不同的策略 //不管策略有多少种,代码的其他部分都不用随之发生变化 System.out.print("第一次使用:"); new Context(new FirstBag()).operate(); System.out.print("第二次使用:"); new Context(new SecondBag()).operate(); System.out.print("第三次使用:"); new Context(new ThirdBag()).operate(); } } //由于策略是同一类型的东西,所以先写一个策略的接口 interface Istrategy{ public void operate(); } //接口写好之后,分别写多个策略类来继承策略接口 class FirstBag implements Istrategy{ public void operate(){ System.out.println("第一个锦囊"); } } class SecondBag implements Istrategy{ public void operate() { System.out.println("第二个锦囊"); } } class ThirdBag implements Istrategy{ public void operate(){ System.out.println("第三个锦囊"); } } //Context类用于执行策略接口所对应的策略 //调用Context中的operate()来执行策略 class Context{ private Istrategy strategy; Context(Istrategy strategy){ this.strategy=strategy; } public void operate() { this.strategy.operate(); } }
相关文章推荐
- HDU 1013 Digital Roots(数论)
- spring mvc 从 controller 调到静态页面 , html
- [转]Innodb Double Write
- 052(四十二)
- 338-m-Counting Bits
- Java用JavaService实现Windows系统服务
- ES-MongoDB学习7_CentOS6.5下Mongo-connector的安装和操作
- Machine Learning MultiLinear Regression Andrew Ng 课程练习 Matlab Script 详细解析
- window环境下安装composer心得
- MySQL常见配置参数调优
- C#中判断一个集合是另外一个集合的子集
- 通俗易懂------this指向
- 052(四十一)
- 电梯调度问题模型分析及程序设计(一)
- excel 如何快速实现绝对引用
- CS第三方控件
- UITableViewCell上添加按钮区分点击方法
- user表中存在多条相同user不同host用户信息时MySQL该匹配哪条记录登录?
- linux下MySQL源码安装
- 2016 最好的Bootstrap 管理模板