您的位置:首页 > 其它

设计模式之--装饰模式与代理模式的区别

2014-01-05 13:20 267 查看
二者的代码实现上非常的类似,但是就行为目的而言,二者是相反的(装饰模式:增强,代理模式:限制)

装饰器模式:能动态的新增或组合对象的行为。

代理模式:为其他对象提供一种代理以控制对这个对象的访问.(换句话说,可以不执行某功能)

装饰模式是“新增行为”,而代理模式是“控制访问”。

装饰模式是在原有基础之上增加额外的功能,而代理模式有两种情况可以使用第一种是延迟代理对象,对于大文件或者目前还未加载完的对象,使用比较合适。第二种为权限判断,在调用功能前判断当前用户是否有此权限。

代理模式不是嵌套调用的。

装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案;

代理模式给一个对象提供一个代理对象,并有代理对象来控制对原有对象的引用;

装饰模式应该为所装饰的对象增强功能;

代理模式对代理的对象施加控制,并不提供对象本身的增强功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: