Java设计模式-适配器模式,装饰模式,代理模式的异同

最近在学习Java的设计模式,推荐入门级的猿们阅读下《大话设计模式》这本书,语言通俗,简洁易懂。

到目前为止,遇到几种比较类似的设计模式,比如“策略模式(strategy)和状态模式”、代理(proxy)和适配器(adapter)模式等。
这篇文章特别把装饰器、代理和适配器这三种模式拿到这里特别拿出来做一下比较,顺便也是对学习的一个复习和总结了,文章参考了一些网上的资料。

首先肯定是基础概念必须了解了:

  • 适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作,做法是将类自己的接口包裹在一个已存在的类中;
  • 装饰模式(Decorator):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活,实际目的是对原有的进行增强;
  • 代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问,同一个类而去调用另一个类的方法,不对这个方法进行直接操作。

适配器的特点在于兼容,从代码上的特点来说,适配类与原有的类具有相同的接口,并且持有新的目标对象。
就如同一个三孔转2孔的适配器一样,他有三孔的插头,可以插到三孔插座里,又有两孔的插座可以被2孔插头插入。
适配器模式是在于对原有3孔的改造。
在使用适配器模式的时候,我们必须同时持有原对象,适配对象,目标对象

装饰器模式特点在于增强,他的特点是被装饰类和所有的装饰类必须实现同一个接口,而且必须持有被装饰的对象,可以无限装饰。

代理模式的特点在于隔离,隔离调用类和被调用类的关系,通过一个代理类去调用。

总的来说就是如下三句话:

1 适配器模式是将一个类(a)通过某种方式转换成另一个类(b).
2 装饰模式是在一个原有类(a)的基础之上增加了某些新的功能变成另一个类(b).
3 代理模式是将一个类(a)转换成具体的操作类(b).

摘自:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pHscccr_Ayyx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值