设计模式之适配器模式
来源:互联网 发布:电信宽带免费提速软件 编辑:程序博客网 时间:2024/06/13 12:23
适配器模式就是把一个不能使用的对象转换成一个可以使用的对象,使得系统适应不同的场景。
这里的例子是:电脑要通过三项插头充电,但现在只有一个二项插头,所以要new 一个适配器,将二项插头转化成三项插头,从而使得电脑正常充电。
在适配器类中加入 二项插头的对象, 方便对其进行转化。 当然实现适配器有继承和组合两种方式,但我们毫无疑问是采用组合的方式实现适配器,组合可以灵活使用,方便适应未来的需求。
三项插头接口(ThreePlug)
public interface ThreePlug{ void work();}
三项插头接口实现(ThreePlugImpl )
public class ThreePlugImpl implements ThreePlug { @Override public void work() { System.out.println("三项插座在工作中..."); }}
二项插头接口(TwoPlug)
public interface TwoPlug { void work();}
二项插头接口实现(TwoPlugImpl )
public class TwoPlugImpl implements TwoPlug { @Override public void work() { // TODO Auto-generated method stub System.out.println("二项插座在工作中.."); }}
电脑类(Computer)
public class Computer{ private ThreePlug threePlug; public Computer(ThreePlug threePlug) { this.threePlug = threePlug; } public void charge() { threePlug.work(); System.out.println("电脑在充电"); } }
适配器(Adapter 实现 ThreePlug 接口)
public class Adapter implements ThreePlug { private TwoPlug twoPlug; public Adapter(TwoPlug twoPlug) { this.twoPlug = twoPlug; } @Override public void work() { System.out.println("适配器工作中.."); twoPlug.work(); }}
测试类(Test )
public class Test { public static void main(String[] args) { //1.正常调用三项插头充电 ThreePlug threePlug = new ThreePlugImpl(); Computer computer = new Computer(threePlug); computer.charge(); //2.调用适配器,利用二项插头充电 /*TwoPlug twoPlug = new TwoPlugImpl(); Adapter adapter = new Adapter(twoPlug); Computer computer = new Computer(adapter); computer.charge();*/ }}
控制台输出
1.正常调用三项插头充电
三项插座在工作中…
电脑在充电
2.调用适配器,利用二项插头充电
适配器工作中..
二项插座在工作中..
电脑在充电
阅读全文
0 0
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式 之 适配器
- 设计模式 之 适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式 之 适配器模式
- 设计模式之适配器模式
- 设计模式之适配器模式
- 设计模式之适配器模式
- 设计模式之适配器模式
- 设计模式之适配器模式
- 设计模式之--适配器模式.
- 46.排列的所有可能组合
- Android 图片添加白边(类似加框)
- 在android的项目中要在string.xml 中显示特殊符号
- 分页查询
- Omnigraffle Pro 6安装与注册码
- 设计模式之适配器模式
- ACTION中定义的变量,怎么传值到JSP页面
- Docker+OpenvSwitch走进VxLAN的世界
- iOS textview加载html并改变图片大小
- 1971-判断素数
- Mastering Web Application Development with AngularJS-Packt 2013 读书笔记(不错的好书!)
- Node -- 构建HTTP服务
- HadoopHelper使用说明
- 混合开发-webview和原生交互