设计模式 - 适配器模式
2016-06-15 10:49
288 查看
什么是适配器模式?
适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作
的两个类能够在一起工作。
设配器模式的结构
源(Adapee)角色:现有的需要适配的接口。
适配器(Adaper)角色:适配器类是适配器模式的核心,适配器把源接口转换成目标接口。
目标(Target)角色:所期待得到的接口。
适配器模式有类适配器模式和对象适配器模式两种不同的形式。
类适配器模式
/** 源 **/
public class Adapee{
public void fun1(){};
}
/** 目标 **/
public interface Target {
public void fun1();
public void fun2();
}
/** 适配器类 **/
public class Adapter extends Adaptee implements Target {
@Override
public void fun2() {
......
}
}
对象适配器模式
与类适配器模式不同,对象适配器模式不使用继承关系连接到Adaptee类,而使用委派关系连接到Adaptee类。
public class Adapter {
private Adaptee adaptee;
public Adapter(Adaptee adaptee){
this.adaptee = adaptee;
}
public void fun1(){
this.adaptee.fun1();
}
public void fun2(){
......
}
}
适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作
的两个类能够在一起工作。
设配器模式的结构
源(Adapee)角色:现有的需要适配的接口。
适配器(Adaper)角色:适配器类是适配器模式的核心,适配器把源接口转换成目标接口。
目标(Target)角色:所期待得到的接口。
适配器模式有类适配器模式和对象适配器模式两种不同的形式。
类适配器模式
/** 源 **/
public class Adapee{
public void fun1(){};
}
/** 目标 **/
public interface Target {
public void fun1();
public void fun2();
}
/** 适配器类 **/
public class Adapter extends Adaptee implements Target {
@Override
public void fun2() {
......
}
}
对象适配器模式
与类适配器模式不同,对象适配器模式不使用继承关系连接到Adaptee类,而使用委派关系连接到Adaptee类。
public class Adapter {
private Adaptee adaptee;
public Adapter(Adaptee adaptee){
this.adaptee = adaptee;
}
public void fun1(){
this.adaptee.fun1();
}
public void fun2(){
......
}
}
相关文章推荐
- 转:艾瑞咨询2016 IM云的发展趋势
- 作业九—软件工程的总结和体会
- 使用Javascript无限添加QQ好友原理解析
- 避免Activity内存泄露
- Android应用程序框架——智能指针(一)
- STL源码剖析——queue
- tinyint对应java什么类型
- 今天正式开始自己的csdn博客生涯
- Eclipse详细设置护眼背景色和字体颜色并导出
- java代码性能优化
- 关于Docker的实践
- laravel5
- C++获取控制台打印消息,重定向stdout等打印内容
- C++考试小程序编程思路和简单设计
- 关于在linux下面和WIN7下面新建一个TinkPHP3.1.3和3.2.3项目--探讨
- 浅谈智慧家庭小优机器人通过WIFI+SSDP方式接入华为智能网关
- loadrunner11,卸载360浏览器后提示“无效的应用程序路径!请检查应用程序是否存在!
- 实用Android Studio 插件
- 深度学习 网络结构 可视化
- Entity Framework 第七篇 简化排序