代理模式与装饰者模式区别与联系

一、区别

    1、使用场景区别

        代理模式侧重于对对象行为的特殊控制,不同的代理对象实现对被代理对象行为的不同的控制,并且这些代理的行为控制很少有组合的可能性。

        装饰者模式侧重于对被装饰对象属性的扩展,不同的装饰者对象会为被装饰者对象添加不同的属性,并且这些属性可以任意嵌套组合。

    2、模式实现区别

        装饰者模式需要提供装饰对象为参数的构造函数,而代理对象则无该项要求,主要原因是装饰者模式需要支持嵌套组合属性。

二、联系

        两者都是通过实现真实对象接口,并内置一个真实对象,通过操作该真实对象来实现接口。

你可能感兴趣的:(代理模式与装饰者模式区别与联系)