装饰器模式
-
意图
以非继承方式实现动态的为现有类(被装饰类),拓展新功能,同时又不改变被修饰类的结构
-
优点
避免继承方式的功能拓展导致的子类膨胀;装饰类与被装饰类均可独立发展;装饰类可以动态添加与撤销
-
缺点
多重装饰会比较复杂
-
实现
- (推荐)为被装饰类提升一个抽象类 Component
- 装饰类实现(继承)或引用Component,来实现装饰功能接口编写
- 具体Component依旧按照原有的实现发展
-
UML
-
理解
- 替换继承方式拓展现有类功能
- 可以动态拆分与拓展现有类的功能
网友评论