适配器模式
来源:互联网 发布:我的心情无人知 编辑:程序博客网 时间:2024/06/05 19:09
1.Client端的访问时面向接口的。这样能使程序应对不同的实现。
2.假设Client端使用一个vehicle,意思是交通工具。Client端调用该接口的run()。实现交通工具的“跑”功能。
3.现在有个Car类。该类和vehicle没有关系。但是也提供了run()方法,用于“小汽车跑起来”。
现在要将Car作为vehicle的一个“实现类”。实际上不上真正的实现,而是由一个“中介”,作用是能提供vehicle的实例,同时包含Car。
现在就要这样做:
<pre name="code" class="java">class CarAdapter Implements vehicle{//提供vehicle的实例private Car car;public void run(){//小汽车跑car.run();//还可以控制小汽车跑的其他方面}public CarAdapter(Car c){car = c;//提供个构造方法来初始化。}}.
这样在Client端就可以保持一个vehicle访问形式不变,使用并控制Car提供的功能。类似这样:
//前面的一些代码,一直在使用vehicle做事情vehicle=new CarAdapter(new Car());//现在要用一个Car做些事情,但是不能“整容”,否则后面的代码不认识//仍然使用vehicle做些事情
小结:
适配是为了转型,转型就要用到继承,内部封装“被转型”类。
0 0
- 适配器及适配器模式
- 适配器及适配器模式
- 适配器模式(类适配器)
- 适配器模式(默认适配器)
- 适配器模式(对象适配器)
- 适配器模式-类适配器
- 适配器模式-对象适配器
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 【OC语法快览】五、设计类接口
- windows与linux 注册表区别
- [IOS开发]苹果推送机制APNs(二)
- c++中包含empty virtual base class 类的sizeof结果分析
- ....................
- 适配器模式
- OCP 1Z0 053 100
- ubuntu14上配置tftp服务器解决Transfer timed out
- Android中 dp,px,dpi三者之间的关系
- CC++初学者编程教程(13) 基于Oracle linux 的Oracle12c环境搭建
- Linux下grep显示前后几行信息
- 栈的应用HDU1237
- OpenCV学习笔记10 OpenCV图像处理模块ImgProc Module. Image Processing(三)
- 使用apache.commons.lang3.StringEscapeUtils 过滤'<' '>' '&' 字符注入,防御恶意HTML注入攻击