代理模式和装饰器模式

之所以将这两个放在一起,是因为这两个在功能上优点类似。
但是我们这里主要讨论其异同点:

  1. 功能上来讲:代理模式主要是为了控制对对象的访问。换句话说,用代理模式,代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。而装饰器模式是为了对原有对象进行功能增强
  2. 从实现上来讲:代理模式是在代理类中创建并初始化某个被代理的对象,而装饰器模式需要持有外部传入实例对象的引用。
  3. 从创建时期上来讲:使用代理模式,代理和真实对象之间的的关系通常在编译时就已经确定了,而装饰者能够在运行时递归地被构造(因为是外部传入被装饰的对象)。
发布了69 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/JustKian/article/details/104171282