适配器模式在java中是一种常用的模式,那么这种模式的设计思想是什么呢?
各种设计模式的书讲解的也比较多,我个人从面向对象的角度进行阐述如下:
当一个类不完全符合当前需求,不能进行直接修改源码的情况下,如何才能才能达到需求呢,实际上可以在原来类型的基础上,声明一种抽象的类型,这种抽象的类型是对原来类型的进一步抽象,这中更加抽象的类型我们通过接口来定义,那么这种抽象类型的具体实现通过继承原有的类并实现此接口,这样这个具体实现类就是原类的适配器,它扩展了原类的能力而不修改原来的类,并且复用了原类的代码(通过继承实现)。这种实现方式实际上是类的适配器模式。
还有一种是对象的适配器模式,它其实也是对源类的扩展,并实现代码复用,它的代码复用不是通过继承方式实现的,而是通过关联关系实现的,也就是说目标类中声明一个源类的实例变量来达到复用源类。
这两种实现方式优缺点:
类的实现方式: 优点是可以通过覆盖源类的方法从而改变源类的某些行为
缺点是它是通过继承的方式实现适配的,那么就不能适配源类的子类
对象的实现方式:优点是可以适配源类和其所有子类,容易增加新的行为
缺点是不能改变源类的行为
分享到:
相关推荐
适配器模式的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进行讨论