设计模式之禅学习——适配器模式
m git : https://github.com/hejiawang
1、适配器模式就是将一个类的接口变成客户端所期待的另一种接口,使客户端能够使用原来因为接口不匹配所导致不能用的接口。
好像变压器,像我们的手机电脑,不能直接使用220V的电压,那么通过变压器就能降低电压,使原 来不能使用的电压现在变得能够使用。这个变压器就是一个适配。
下图中,原本A和C是不能够在一起,通过B的适配,AC终成眷属了。。。。
2、下面看看适配器模式的代码:
需要适配的角色,就像上面图中的A。。
package com.wang.adapterPattern; /** * 适配器模式 </br> 目标角色 * * @author wang * */ public interface Target { /** * 目标角色自己的方法 */ public void request(); }
它的实现类
package com.wang.adapterPattern; /** * 目标角色实现类 * * @author wang * */ public class ConcreteTarget implements Target { @Override public void request() { System.out.println("ConcreteTarget"); } }
适配的原角色,就像上图中的C。。
package com.wang.adapterPattern; /** * 适配的源角色 * * @author wang * */ public class Adaptee { /** * 源角色的方法 */ public void doSomething() { System.out.println("Adaptee"); } }
适配器角色,也就是上图中的B了。。
package com.wang.adapterPattern; /** * 适配器角色 * * @author wang * */ public class Adapter extends Adaptee implements Target { @Override public void request() { super.doSomething(); } }
客户端使用情况:
package com.wang.adapterPattern; public class APP { public static void main(String[] args) { Target target = new ConcreteTarget(); target.request(); /** * 适配其他的角色 */ Target targetAdapter = new Adapter(); targetAdapter.request(); } }
3、适配器的使用情况很好判断,比如,系统扩展了,需要使用一个已经或新建的类,但是这个类又不符合系统的接口,咋办呢。。。。适配呗。。。中间添加个适配器,搞定。。。。。
相关推荐
适配器模式的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进行讨论