适配器模式,即把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法一起工作的两个类能够在一起工作。例如:笔记本的电源适配器、二脚转三脚的电源插座等等。
适配器分成两种形式,分别是类的适配器模式和对象的适配器模式,它们的结构图如下图所示:
实现源码:(由于个人Rational Rose用的不熟,可能代码与上图有点差异)
类的适配器模式:
package adapter;
public class Adaptee {
public String method1()
{
return "METHOD1";
}
}
package adapter;
public interface Target {
/**
* Adaptee类有的方法
*/
public String method1();
/**
* Adaptee类没有的方法
*/
public String method2();
}
package adapter;
public class Adapter extends Adaptee implements Target {
@Override
public String method2() {
// 调用Adaptee的method1()方法
return super.method1();
}
}
对象适配器模式:
package adapter;
public interface Target2 {
/**
* Adaptee2类有的方法
*/
public String method1();
/**
* Adaptee2类没有的方法
*/
public String method2();
}
package adapter;
public class Adaptee2 {
public String method1()
{
return "METHOD1";
}
}
package adapter;
public class Adapter2 implements Target {
private Adaptee2 adaptee2;
public Adapter2(Adaptee2 adaptee2)
{
super();
this.adaptee2 = adaptee2;
}
@Override
public String method1() {
// 调用Adaptee的method1()方法
return adaptee2.method1();
}
@Override
public String method2() {
// 个人的处理代码
return "";
}
}
什么情况下使用适配器模式:
1 系统需要使用现有的类,而此类的接口不符合系统的需要
2 想要简历一个可以重复使用的类,用于与一些配词之间没有太大关联的一些类,包括一些可能在将来引进的类 一起工作。
3 在设计里,需要改变多个已有的子类的接口,如果使用类的适配器,就要针对每一个子类做一个适配器类,而这不太实际。
- 大小: 65.7 KB
分享到:
相关推荐
适配器模式的Java实现版本,包含类适配器模式和对象适配器模式的实现,同时也包含两者的UML类图
java设计模式【之】适配器模式【源码】【场景:水和容器】 * 适配器模式,类似(亡羊补牢) * 已经存在的类(功能已经开发完成了),与新需求的功能相似,但是略有差异 * 当已经存在的方法无法满足现有需求,需要...
C#设计模式之适配器模式应用实例
设计模式之适配器模式Java版 设计模式之适配器模式Java版 设计模式之适配器模式Java版 设计模式之适配器模式Java版
[刚刚上传的demo运行有问题,重新传了个新的],这个的一个iOS的适配器模式的实例代码,目前就是一个简单的demo,后期还会更新适配器在 MVC,MVP,MVVM中的使用,demo对应着简书:https://www.jianshu.com/p/e2ebcf19098f,...
实验7 适配器模式、外观模式与模板方法模式---Java设计模式
动态代理模式 适配器模式 实现,都可以运行,有一部分注解
设计模式之适配器模式,通过实际例子讲述适配器模式的使用,原理和特点
适配器模式代码demo 适配器模式代码demo 适配器模式代码demo
适配器模式 设计模式 Adapter 还请各位大S指教
设计模式-适配器模式(讲解及其实现代码)
设计模式--适配器模式java例子
设计模式C++学习之适配器模式(Adapter)
实验七:适配器模式.rar实验七:适配器模式.rar
设计模式的适配器模式的例子,希望对大家有用
设计模式系列之适配器模式,分别以Java,Android,IOS进行讨论