应用场景:动态的给一个对象增加额外的职责,装饰者模式比子类继承更为灵活。
组成要素:
Component:抽象构件
ConcreteComponent:具体构件,被装饰的对象
Decorator:装饰者,实现Component,并且里面一定包含要被装饰的构建Component
ConcreteDecorator:具体装饰者,对呗装饰对象进行自定义的装饰
示例demo:现在要做三种蛋糕,第一种蛋糕是只涂抹一层奶油,第二种蛋糕是再涂抹一层巧克力,第三种蛋糕是再加一层水果。
抽象构建 具体构建,被装饰对象 抽象装饰者,规定被装饰类型,以及装饰逻辑 具体装饰者,在被装饰基础上实现自己的装饰逻辑 具体装饰者,在被装饰者基础上进行自定义的装饰 具体装饰者,在被装饰者基础上进行自定义的装饰 客户端,进行层层装饰
网友评论