设计模式总结(2)======================================================decorator pattern装饰者和被装饰者有相同的 超类型;可以用一个或多个 装饰者来 包装 一个对象;既然装饰者和被装饰者对象有相同的超类型,所以在任何需要原始对象...
分类:
其他好文 时间:
2014-06-21 07:38:48
阅读次数:
143
类应该对扩展开放, 对修改关闭.所谓装饰者模式,
是指用其他的类来装饰某个类,装饰者说白了就是使用 has-a 来代替 is-a隐喻咖啡店, 有很多种咖啡, 咖啡里还要增加一些 milk, 面包片啊, 等等.
针对加的东西不同, 计算出来的费用不同, 那么我们需要怎么做呢?1. 首先创建一个 cof...
分类:
其他好文 时间:
2014-06-11 13:03:28
阅读次数:
349
装饰模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。简单描述:1一个父类A(主要给各具体装饰者可以设置待装饰对象),1个具体待装饰类(继承于父类A),1个抽象装饰者(继承父类A),多个具体装饰者(继承抽象装饰者)。装饰者持有父类A的引用,每个装饰者在调用方法时都...
分类:
编程语言 时间:
2014-06-11 10:41:02
阅读次数:
323
装饰者模式是很有意思的一种设计模式,你将能够在不修改任何底层代码的情况下,给你的(或别人的)对象赋予新的职责。不是使用继承每回在编译时超类上修改代码,而是利用组合(composition)和委托(delegation)可以在运行时具有继承行为的效果。
代码应该如同晚霞中的莲花一样地关闭(免于改变),如同晨曦中的莲花一样地开放(能够扩展)。
这就是,设计原则之五:类应该对扩展开放,对...
分类:
编程语言 时间:
2014-06-08 17:35:12
阅读次数:
252
模式定义:
装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
装饰者和被装饰者有相同的超累类型。
可以用一个或多个装饰者包装一个对象。
既然装饰者和被装饰者对象有相同的超累类型,所以在任何需要原始对象(被包装的)的场合,可以用装饰过的对象代替它。
装饰者可以委托被装饰者...
分类:
编程语言 时间:
2014-06-08 09:49:38
阅读次数:
248
1 设计一个基类
2 继承这个基类,并包含这个基类的一个对象
3 创建继承类的时候,初始化这个基类,因为是基类指针,所以可以是所有基类的衍生类对象,那么就可以叠加任意多个衍生类对象了。
关键是在衍生类中包含一个基类对象,然后有了继承和包含两重关系,可以使得一个类一个类对象叠加,达到装饰目的。
等于是创建了一个对象指针链表,一个一个对象发挥其相应的作用。
下面程序装饰一个桌...
分类:
其他好文 时间:
2014-06-05 06:15:17
阅读次数:
278
装饰者模式是JDK中另一个使用较多的设计模式,上一个是观察者模式(在Swing中大量使用),业内好的API设计无一离不开常见的设计模式,通常我们所说要阅读源码,也是为了学习大牛们的设计思路。————题记
设计模式
观察者模式:定义了对象之间一对多的依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。
装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提...
分类:
其他好文 时间:
2014-06-02 05:31:47
阅读次数:
234
五、Decorate(装饰者)描述:动态的给一个对象添加额外的职责,比继承达到更好的灵活性好处:某些功能需要用户动态决定加入方式和时机,装饰者提供即插即用的模型例子:举Adapter中的打桩示例,在Adapter中有两种类:方形桩
圆形桩,Adapter模式展示如何综合使用这两个类,在Decorat...
分类:
其他好文 时间:
2014-05-28 21:21:59
阅读次数:
373