装饰器模式
滴水穿石
装饰器模式
目的:增加新的功能
优点:装饰类和被装饰类可以独立发展,解耦;继承的一个替代模式,动态的增加功能
缺点:多层装饰比较复杂
网上找了两个图,画法都不一样,取其精华就可以了,大体意思
被装饰对象
-------------------------------------
interface A
classA1 implements A
classA2 implements A
装饰器
—————————————
abstrate B implements A
# A a
+ construct B(A a);
Class B1 extends B
Class B2 extends B
————————————
装饰器持有了被装饰器的原始对象类型,即被装饰的父类,因此可以装饰被装饰的任意子类
装饰器子类继承了装饰器,即拥有被装饰对象
装饰器子类可以重写被装饰对象的方法
在重写的方法先后增加新的功能。
————————————I/O——————的实现就是装饰器模式————————之后源码解析
无论如何,心平气和