woieha320r的博客

装饰器

用非继承方式实现功能扩展

· 抽象服务在有标准实现的同时,提供Wrapper继承并组合抽象服务,后续的功能扩展通过继承Wrapper实现

classDiagram class Component { <<interface>> +method() void } class ComponentImpl ComponentImpl ..|> Component : 实现 class AbstractComponentWrapper { <<abstract>> -Component component } AbstractComponentWrapper *-- Component : 构造器初始化成员 class ComponentWrapperA { +otherMethodA() void } ComponentWrapperA --|> AbstractComponentWrapper : 继承 class ComponentWrapperB { +otherMethodB() void } ComponentWrapperB --|> AbstractComponentWrapper : 继承