装饰模式
老爸一看成绩单, 听我这么一说, 非常开心, 儿子有进步呀, 从40多名进步到30多名,进步很大, 躲过了一顿海扁。 想想看, 如果我还要增加其他的修饰条件, 是不是就非常容易了, 只要实现Decorator类就可以了! 这就是装饰模式。17.2 装饰模式的定义装饰模式(Decorator Pattern) 是一种比较常见的模式, 其定义如下: Attach additionalresponsibilities to an object dynamically keeping the same interface.Decorators provide a flexiblealternative to subclassing for extending functionality.(动态地给一个对象添加一些额外的职责。就增加功能来说, 装饰模式相比生成子类更为灵活。 )装饰模式的通用类图如图17-5所示。图17-5 装饰模式的通用类图在类图中, 有四个角色需要说明:● Component抽象构件Component是一个接口或者是抽象类, 就是定义我们最核心的对象, 也就是最原始的对象, 如上面的成绩单。注意 在装饰模式中, 必然有一个最基本、 最核心、 最原始的接口或抽象类充当Component抽象构件。● ConcreteComponent