装饰器模式

滴水穿石

装饰器模式

目的:增加新的功能

优点:装饰类和被装饰类可以独立发展,解耦;继承的一个替代模式,动态的增加功能

缺点:多层装饰比较复杂

网上找了两个图,画法都不一样,取其精华就可以了,大体意思

被装饰对象

-------------------------------------

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——————的实现就是装饰器模式————————之后源码解析


无论如何,心平气和

原文地址:https://www.cnblogs.com/cfb513142804/p/7423842.html