代理模式与装饰器模式的区别
2019-05-10 本文已影响0人
ultimateYu
摘要
-
对用户透明度
代理模式在调用的时候原函数对用户是不透明的,装饰器模式在用户的调用的时候装饰器函数与原函数对用户都是透明的。 -
功能增加角度
代理模式和装饰器模式都可以再原函数的基础上前后增加东西,但是代理模式一旦写成再修改就会令代理类越来越臃肿,并且不符合开闭原则;装饰器模式的装饰器函数则是相对独立的,无论增加多少功能都可以在调用的时候递归调用,不用修改已经写成的代码。 -
地址空间
代理模式可以应用在远程代理上面,本地拉取远程服务器上面的对象,但是实现确实在远程服务器上进行;装饰器模式则要求装饰器和被装饰对象在同一个地址空间。