Skip to content

Latest commit

 

History

History
16 lines (8 loc) · 1.29 KB

adapterdiffdecorator.md

File metadata and controls

16 lines (8 loc) · 1.29 KB

适配器模式与装饰器模式和代理模式区别区别

装饰器与适配器都有一个别名叫做 包装模式(Wrapper),它们看似都是起到包装一个类或对象的作用,但是使用它们的目的很不一一样。

适配器模式的意义是要将一个接口转变成另一个接口,它的目的是通过改变接口来达到重复使用的目的。

而装饰器模式不是要改变被装饰对象的接口,而是恰恰要保持原有的接口,但是增强原有对象的功能,或者改变原有对象的处理方式而提升性能。所以这两个模式设计的目的是不同的。

** 代理提供的接口和原本的要实现统一接口,代理模式的作用是不把实现直接暴露给client,而是通过代理这个层,代理能够做一些处理,判断。**

** 适配器模式体现的是适配,比如Client 需要A类提供的行为,此时我们有B类提供了一些方法可以实现,但是方法名字不一样,需要改造一下变成A, 此时创建一个类C,实现A接口,并注入B类,这样相当于C就通过协调用B的方法,来补充到A接口方法中(所以这里C属于适配器,来协调Client 和 B) 对适配器模式的功能很好理解,就是把一个类的接口变换成客户端所能接受的另一种接口