正文
最近在学习设计模式,学着学着,感觉装饰模式和代理模式非常的相似,于是在网上深入的学习了一下,找出了他们之间的区别。
- 让别人做你不关心的事情:代理模式
- 为让自己的能力增强,使得增强后的自己能够使用更多的方法,拓展在自己基础之上的功能的:装饰模式
1、装饰器模式强调的是增强自身,在被装饰之后你能够在被增强的类上使用增强后的功能。增强后你还是你,只不过能力更强了而已;代理模式强调要让别人帮你去做一些本身与你业务没有太多关系的职责(记录日志、设置缓存)。代理模式是为了实现对象的控制,因为被代理的对象往往难以直接获得或者是其内部不想暴露出来。
2、装饰模式是以对客户端透明的方式扩展对象的功能,是继承方案的一个替代方案;代理模式则是给一个对象提供一个代理对象,并由代理对象来控制对原有对象的引用;
3、装饰模式是为装饰的对象增强功能;而代理模式对代理的对象施加控制,但不对对象本身的功能进行增强;