DP-装饰模式、代理模式
来源:互联网 发布:淘宝哪些属于其他来源 编辑:程序博客网 时间:2024/05/16 02:35
from http://blog.csdn.net/wuzhekai1985/article/details/6672614
装饰模式:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。有时我们希望给某个对象而不是整个类添加一些功能。比如有一个手机,允许你为手机添加特性,比如增加挂件、屏幕贴膜等。一种灵活的设计方式是,将手机嵌入到另一对象中,由这个对象完成特性的添加,我们称这个嵌入的对象为装饰。这个装饰与它所装饰的组件接口一致,因此它对使用该组件的客户透明。下面给出装饰模式的UML图。
在这种设计中,手机的装饰功能被独立出来,可以单独发展,进而简化了具体手机类的设计。
使用:装饰类与被装饰类有共同接口,且装饰类有被装饰类的引用。client使用被装饰类做参数构建装饰类,有点像代理模式。
这两个设计模式看起来很像。对装饰器模式来说,装饰者(decorator)和被装饰者(decoratee)都实现同一个 接口。对代理模式来说,代理类(proxy class)和真实处理的类(real class)都实现同一个接口。此外,不论我们使用哪一个模式,都可以很容易地在真实对象的方法前面或者后面加上自定义的方法。
然而,实际上,在装饰器模式和代理模式之间还是有很多差别的。装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。换句话 说,用代理模式,代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。并且,当我们使用装饰器模 式的时候,我们通常的做法是将原始对象作为一个参数传给装饰者的构造器。
我们可以用另外一句话来总结这些差别:使用代理模式,代理和真实对象之间的的关系通常在编译时就已经确定了,而装饰者能够在运行时递归地被构造。
- DP-装饰模式、代理模式
- 装饰模式、代理模式
- 装饰模式和代理模式
- 装饰者模式&代理模式
- 装饰器模式,代理模式
- 代理模式和装饰模式
- 代理模式和装饰模式
- 装饰模式和代理模式
- 装饰模式和代理模式
- 代理模式 vs 装饰模式
- 装饰模式、装饰器模式、代理模式、外观模式区别
- 装饰模式、装饰器模式、代理模式、外观模式区别
- 装饰模式、装饰器模式、代理模式、外观模式区别
- 代理模式,装饰模式,适配器模式
- 适配器模式,装饰模式,代理模式异同
- 适配器模式,装饰模式,代理模式异同
- 设计模式(代理模式、装饰模式)
- 适配器模式,装饰器模式,代理模式
- 使用U盘装win7系统
- 我明白,我的爱,只是一种无限期的等待,也不会有你的归来
- oracle 11g 无法导出空表问题
- QT5.2 Android App找不到插件qmlxmllistmodelplugin
- Day1:Windows2003部署DataStage
- DP-装饰模式、代理模式
- AM关闭显示许可到期
- tr的display属性设置为block后,发生错位的解决方法
- Java获取泛型的Class的工具类
- 更好地设计你的REST API
- QQ空间营销策略:寻找用户的痛点
- candence 16.6 win8.1 x64 破解成功
- init进程中和bt相关的部分
- 设计技巧38:利用委托桥接类继承的功能层次和实现层次