代理模式和装饰器模式的区别

简介: 让别人帮助你做你并不关心的事情,叫代理模式,样例:透过Spring AOP来深入理解代理模式为让自己的能力增强,使得增强后的自己能够使用更多的方法,拓展在自己基础之上的功能的,叫装饰器模式,样例:装饰器模式(Java)

区别

对装饰器模式来说,装饰者(decorator)和被装饰者(decoratee)都实现同一个接口。对代理模式来说,代理类(proxy class)和真实处理的类(real class)都实现同一个接口。他们之间的边界确实比较模糊,两者都是对类的方法进行扩展,具体区别如下:

1、装饰器模式强调的是增强自身,在被装饰之后你能够在被增强的类上使用增强后的功能。增强后你还是你,只不过能力更强了而已;代理模式强调要让别人帮你去做一些本身与你业务没有太多关系的职责(记录日志、设置缓存)。代理模式是为了实现对象的控制,因为被代理的对象往往难以直接获得或者是其内部不想暴露出来。

2、装饰模式是以对客户端透明的方式扩展对象的功能,是继承方案的一个替代方案;代理模式则是给一个对象提供一个代理对象,并由代理对象来控制对原有对象的引用;

3、装饰模式是为装饰的对象增强功能;而代理模式对代理的对象施加控制,但不对对象本身的功能进行增强;


相关文章
|
4月前
结构型 代理模式
结构型 代理模式
20 0
|
2月前
|
设计模式 缓存 安全
设计模式-代理模式(静态代理、动态代理、cglib代理)、代理模式和装饰者模式的区别
设计模式-代理模式(静态代理、动态代理、cglib代理)、代理模式和装饰者模式的区别
55 1
|
8月前
|
设计模式 缓存 安全
设计模式-结构型模式:代理模式
设计模式-结构型模式:代理模式
|
11月前
|
设计模式
ContextWrapper类和ContextImpl类的设计模式——代理模式
在此设计模式中,目的是:为其他对象提供一种代理以控制对这个对象的访问。
87 0
|
11月前
|
Arthas Java 测试技术
结构型模式-代理模式
结构型模式-代理模式
53 0
|
设计模式 安全 C++
【设计模式学习笔记】代理模式、装饰模式和适配器模式案例详解(C++实现)
【设计模式学习笔记】代理模式、装饰模式和适配器模式案例详解(C++实现)
310 0
【设计模式学习笔记】代理模式、装饰模式和适配器模式案例详解(C++实现)
|
SQL XML Java
设计模式 - 结构型模式_代理模式
代理模式有点像⽼⼤和⼩弟,也有点像分销商。主要解决的是问题是为某些资源的访问、对象的类的易⽤操作上提供⽅便使⽤的代理服务。⽽这种设计思想的模式经常会出现在我们的系统中,或者你⽤到过的组件中,它们都提供给你⼀种⾮常简单易⽤的⽅式控制原本你需要编写很多代码的进⾏使⽤
70 0
设计模式 - 结构型模式_代理模式
|
设计模式 缓存
装饰模式和代理模式的区别
装饰模式和代理模式的区别
|
设计模式 数据安全/隐私保护
GOF设计模式之代理模式(结构型代理模式)
GOF设计模式之代理模式(结构型代理模式)
GOF设计模式之代理模式(结构型代理模式)