设计模式之策略者模式
2016-03-02 14:29
239 查看
策略者模式思想是一个接口有多个实现类 把接口封装在一个封装类中调用的时候创建实现类对象传入封装类中 ,用到了向上转型
1 .策略接口
2 .实现策略的实现类
3 .放置实现方法的类
4 .实现策略实现
打印结果: 策略者1 策略者2 策略者3
1 .策略接口
/** * 策略接口 */ public interface IStrategy { public void operate(); }
2 .实现策略的实现类
/** * 实现方法 */ public class BackDoor implements IStrategy { @Override public void operate() { System.out.println("策略者1"); } } public class BackDoor2 implements IStrategy { @Override public void operate() { System.out.println("策略者2"); } } public class BackDoor3 implements IStrategy { @Override public void operate() { System.out.print("策略者3"); } }
3 .放置实现方法的类
/** * 封装实现的方法 */ public class Context { private IStrategy iStrategy; public Context(IStrategy iStrategy){ this.iStrategy=iStrategy; } public void operate(){ iStrategy.operate(); } }
4 .实现策略实现
public class Main { private static Context context; public static void main(String[] args) { context = new Context(new BackDoor()); context.operate(); context = new Context(new BackDoor2()); context.operate(); context = new Context(new BackDoor3()); context.operate(); } }
打印结果: 策略者1 策略者2 策略者3
相关文章推荐
- 如何将本地计算机的文件复制到外网连接的计算机上
- Linux学习笔记(二)
- 泛型T约束
- 谈Objective-C Block的实现
- 安装cnpm加快npm install安装速度
- 2016读书List
- Linux 下 PHP 扩展 cURL 编译安装
- Eclipse下载
- 分布式日志收集系统:Facebook Scribe
- OceanBase SQL解析源码分析(三)
- 网站优化问题:雅虎网站优化35条
- BACnet对象类型
- 10个应该避免的ExtJS开发实践
- 7天学会NodeJS
- Linux LVM硬盘管理及LVM扩容
- C#相关时间DateTime格式化
- hibernate id生成器配置
- SPRING IN ACTION 第4版笔记-第二章WIRING BEANS-008-在Java配置文件中引入xml配置文件@Import、@ImportResource
- InputStream与String,Byte之间互转
- Xshell/vim颜色设置 修改hostname