适配器模式:客户端调用某一个类型 Adapter,该类型只有operationTwo(),但是客户端现在希望调用这个类型的同时,也要执行另一个类型 Source 的operationOne(),这时候我们就要使用“适配器模式”。
解决方案为:我们抽象一个接口Target,该接口拥有operationOne()与operationTwo(),将Adapter这个类型继承Source 类型,实现接口Target。
核心思想就是:通过抽象接口,满足客户端的期待,从而使不同接口类可以一起工作。
具体代码如下:
package com.mkf.pattern;
public class Source {
public void operationOne() {
System.out.println("源被调用: " + Source.class.getName());
}
}
package com.mkf.pattern;
public interface Target {
public void operationOne();
public void operationTwo();
}
package com.mkf.pattern.impl;
import com.mkf.pattern.Source;
import com.mkf.pattern.Target;
public class Adapter extends Source implements Target {
@Override
public void operationTwo() {
System.out.println("适配器被调用: " + Adapter.class.getName());
}
}
package com.mkf;
import com.mkf.pattern.Target;
import com.mkf.pattern.impl.Adapter;
public class TestAdapter {
/**
* @param args
*/
public static void main(String[] args) {
Target t = new Adapter();
t.operationOne();
t.operationTwo();
}
}
执行结果:
源被调用: com.mkf.pattern.Source
适配器被调用: com.mkf.pattern.impl.Adapter
分享到:
相关推荐
适配器模式的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进行讨论