这两种模式在Java IO包下应用很多
典型的包装者模式:InputStream ---> FilterInputStream ---> InputStream
典型的适配器模式:Reader ---> InputStreamReader ---> InputStream
一、定义
先看下两者的定义
装饰者:不改变接口,加入新的责任
适配器:讲一个接口改为另一个接口
不同点:
从定义我们看得出,一个改变了被包装对象的接口,一个保持原有的接口。
二、类图
(上点图片更直观,这里借用下HeadFirst的类图)
装饰者模式
适配器模式
总结!
不同点:
装饰者包含了一个装饰者类型的对象
适配器包含了一个其他类型的对象
共同点:
这对于调用者来说都是透明的,调用者只知道他们操作的是被调用者类型的对象。
所以共同点:
1. 让调用者代码与真实被调用的对象解耦。
2. 封装可变的部分代码
三、实现
在代码的实现上,他们也有明显的区别。
不同点:
装饰者在实现的过程中,只需要在调用被包装对象相同方法前加入新的”责任“
适配器在实现接口的方法时往往要调用很多的被包装对象的方法类完成任务。这也是在应用适配器方法时考虑最多的。
写得不好,欢迎大家讨论!!
- 大小: 183 KB
- 大小: 80.5 KB
分享到:
相关推荐
适配器模式的Java实现版本,包含类适配器模式和对象适配器模式的实现,同时也包含两者的UML类图
java适配器模式中的对象适配器,代码可直接运行
java设计模式之适配器模式,希望对大家有所帮助。
为三类: 类适配器模式、 对象适配器模式、 接口适配器模式。 以生活中手机充电为例来讲解适配器模式, 手机本身并不能直接用220V交流电, 需要将220V的交流电转换为5V的直流电, 在这个过程 中, 充电器本身相当于...
设计模式之适配器模式Java版 设计模式之适配器模式Java版 设计模式之适配器模式Java版 设计模式之适配器模式Java版
计算机后端-Java-图解java设计模式062 对象适配器.avi
23种设计模式--适配器模式
讲解面向对象开发模式之适配器模式。并举例说明类适配器与对象适配器的用法与区别。
设计模式--适配器模式java例子
设计模式系列之适配器模式,分别以Java,Android,IOS进行讨论
Java设计模式共有23种,分别为:抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式、桥接模式、组合模式、装饰模式、享元模式、代理模式、命令模式、解释器模式、访问者模式、迭代子...
对象适配器模式,java实现,基础学习
适配器(Adaper)角色public class Adapter extends Adaptee implements Target { /** * 由于源类
适配器模式,装饰模式和代理模式1
适配器模式有两种:类适配器模式和对象适配器模式。其中类适配器模式使用继承方式,而对象适配器模式使用组合方式。由于类适配器模式包含双重继承,而PHP并不支持双重继承,所以一般都采取结合继承和实现的方式来...
Head.First设计模式-适配器设计模式
主要介绍了Java 适配器模式(类适配器,对象适配器)优缺点对比的相关资料,java 适配器在基础知识中还是比较重要的,这里就说下如何使用,需要的朋友可以参考下
C#设计模式之适配器模式应用实例
什么是抽象:抽象是处理对象复杂性的一种技术,它只关注对象的主要细节而忽略了对象的次要细节。