1、适配器模式分类
(1)对象适配器
(2)类适配器
2、对象适配器
(1)概念:将一个类的接口转为另外一个类的接口,让原来不兼容得类变得兼容
(2)原理:
对象适配器采用组合的方式,适配器对象实现目标类的接口,重写目标类的方法。此时,适配器类中组合了一个被适配的对象,其实质在重写目标类的方法时调用被适配器类对象的方法
(3)优点:
①从用户的角度看不到被适配的对象,被适配的对象与目标对象时解耦的;
②用户调用的是适配器转换出来的目标类的方法;
③适配器调用的是被适配者的相关接口和方法;
(4)代码示例
package net.oschina.design.adapter.objadapter.adapter; import net.oschina.design.adapter.objadapter.chicken.Chicken; import net.oschina.design.adapter.objadapter.duck.Duck; /** * 火鸡适配器,将火鸡转为目标的鸭子 * * @author Freedom * */ public class ChickenAdapter implements Duck { // 对象适配器,通过组合的方式实现适配目的 private final Chicken chicken; public ChickenAdapter(Chicken chicken) { this.chicken = chicken; } @Override public void ga() { chicken.gu(); } @Override public void fly() { chicken.fly(); } }
3、类适配器
(1)概念:类适配器通过多重继承目标接口与被适配对象的接口方式实现适配;
(2)类图
多重继承,继承目标接口部分达到适配的目的,而继承被适配者对象的部分达到通过调用被适配类中的部分功能实现目标接口的功能
(3)对象适配器与类适配器的差异:
对象适配器采用组合方式实现功能而类适配器采用继承方式实现功能;
4、装饰者模式与适配器模式的区别:
(1)装饰者模式中,装饰者与被装饰者有着共同的超类,而适配器模式被适配者与目标接口,无需共用超类
(2)装饰者模式是将一个类的功能进行加强,而适配器模式是将一个类的接口(被适配者接口)转为目标接口。
相关推荐
java设计模式【之】适配器模式【源码】【场景:水和容器】 * 适配器模式,类似(亡羊补牢) * 已经存在的类(功能已经开发完成了),与新需求的功能相似,但是略有差异 * 当已经存在的方法无法满足现有需求,需要...
C#设计模式之适配器模式应用实例
设计模式之适配器模式Java版 设计模式之适配器模式Java版 设计模式之适配器模式Java版 设计模式之适配器模式Java版
[刚刚上传的demo运行有问题,重新传了个新的],这个的一个iOS的适配器模式的实例代码,目前就是一个简单的demo,后期还会更新适配器在 MVC,MVP,MVVM中的使用,demo对应着简书:https://www.jianshu.com/p/e2ebcf19098f,...
实验7 适配器模式、外观模式与模板方法模式---Java设计模式
适配器模式的Java实现版本,包含类适配器模式和对象适配器模式的实现,同时也包含两者的UML类图
动态代理模式 适配器模式 实现,都可以运行,有一部分注解
设计模式之适配器模式,通过实际例子讲述适配器模式的使用,原理和特点
适配器模式代码demo 适配器模式代码demo 适配器模式代码demo
适配器模式 设计模式 Adapter 还请各位大S指教
设计模式-适配器模式(讲解及其实现代码)
设计模式--适配器模式java例子
设计模式C++学习之适配器模式(Adapter)
实验七:适配器模式.rar实验七:适配器模式.rar
设计模式的适配器模式的例子,希望对大家有用
设计模式系列之适配器模式,分别以Java,Android,IOS进行讨论