A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程序猿 中级黑马   /  2012-5-31 21:02  /  1951 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 欧阳梦南 于 2012-9-3 00:09 编辑

已删了啊

6 个回复

倒序浏览
装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。用代理模式,代理类可以对它的客户隐藏一个对象的具体信息。因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。当我们使用装饰器模式的时候,我们通常的做法是将原始对象作为一个参数传给装饰者的构造器。希望这么回答你能明白些

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
      装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。换句话说,用代理模式,代理类可以对它的客户隐藏一个对象的具体信息。因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。并且,当我们使用装饰器模式的时候,我们通常的做法是将原始对象作为一个参数传给装饰者的构造器。
我们可以用另外一句话来总结这些差别:使用代理模式,代理和真实对象之间的的关系通常在编译时就已经确定了,而装饰者能够在运行时递归地被构造。
回复 使用道具 举报
简洁点说:
装饰和代理的实现方式都是通过持有一个相关对象来实现的。
装饰,是给现有对象添加新的功能。
代理,是改变被代理对象的现有功能的实现方式。
装饰,帮你做你做不了的。
代理,以另外一种方式替你做你能够做的。
回复 使用道具 举报
装饰是构造函数参数传递进行增强当想要对已有的对象进行功能增强时,
可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。
如果为了某个功能而产生子类(使用继承的代理类)那么那个体系是非常臃肿的
装饰模式比继承要灵活。避免了继承体系臃肿。
而且降低了类于类之间的关系。
装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强功能。
回复 使用道具 举报
江南 发表于 2012-5-31 22:29
装饰是构造函数参数传递进行增强当想要对已有的对象进行功能增强时,
可以定义类,将已有对象传入,基于已 ...

听你们一说 我明白多了~
回复 使用道具 举报
我一直也不太清楚,感谢楼上几位的回答。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马