【设计模式】代理模式与装饰器模式的区别

1.什么是代理模式?

代理模式(Proxy Pattern)是指为其他对象提供一种代理,以控制对这个对象的访问。

代理对象在客户端和目标之前起到了中介作用,代理模式属于结构型设计模式

使用代理模式主要有两个目的:一是保护目标对象,而是增强目标对象。

代理侧重于对代理点的限制 (或增强)。

2.什么是装饰器模式?

装饰器模式(Decorator Pattern)主要对现有的类对象进行包裹和封装,以期望在不改变类对象及其类定义的情况下,为对象添加额外功能。

动态的给一个对象添加一些额外的职责,就增加功能而言,比继承更加灵活。

装饰器模式是一种对象结构型模式。需要注意的是,该过程是通过调用被包裹之后的对象完成功能添加的,而不是直接修改现有对象的行为,相当于增加了中间层

装饰器模式的目的是,包装具有相同父类和接口的类,利用组合(非继承),然后重写相关的方法。

装饰侧重于对装饰对象的增强 (升级版的对象)。

3.二者区别与常见实例?

区别:

代理模式强调的是:访问控制;

 装饰器模式强调的是:装饰组合;

 实例:

Spring AOP => 代理模式

Java IO => 装饰器模式

原文地址:https://www.cnblogs.com/coder-ydq/p/13992991.html