代理模式和装饰模式
-
代理模式UML
代理模式类图
-
装饰模式UML
装饰模式类图
从类图来看,二者除了名称不同,几乎没有差别,这也常常引起困惑。代理模式和装饰模式的区别,究竟是什么呢?看了很多写二者区别的文章,更加困惑了。
回顾一下二者的定义:
- 装饰模式:
装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 - 代理模式:
为其他对象提供一种代理以控制对这个对象的访问。
对于定义,可以看出二者的区别,装饰是锦上添花,代理是控制访问。
区别之处,在于使用场景吧。
网友评论