代理模式与装饰模式

两者的具有很大的相似性,两者的UML类图实现 几乎相同,

  • 代理模式
代理模式与装饰模式_第1张图片
772134-20160527201809334-849936322.png
  • 装饰模式


    代理模式与装饰模式_第2张图片
    772134-20160527202352881-1116372745.png

特点

  • 装饰模式
在不改变接口的前提下,动态扩展对象的访问。
  动态继承,让类具有在运行期改变行为的能力。 
  装饰模式,突出的是运行期增加行为,这和继承是不同的,继承是在编译期增加行为。
  强调:增强
  • 代理模式
在不改变接口的前提下,控制对象的访问。
  1.从封装的角度讲,是为了解决类与类之间相互调用而由此导致的耦合关系,可以说是接口的另外一个层引用。
  2.从复用的角度讲,可以解决不同类调用一个复杂类时,仅仅因较小的改变而导致整个复杂类新建一个类。
  代理模式,是类之间的封装和(某方面的)复用。
  强调:限制

比较总结

代理模式中,代理类对被代理的对象有控制权,决定其执行或者不执行。而装饰模式中,装饰类对代理对象没有控制权,只能为其增加一层装饰,以加强被装饰对象的功能,仅此而已

个人理解

你可能感兴趣的:(代理模式与装饰模式)