第3章:装饰者模式
装饰者模式:动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的代替方案。(咖啡店)
运行时扩展远比编译时期的继承威力大。
利用组合(composition)和委托(delegation)可以在运行时具有继承行为的效果。
利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用组合的做法扩展对象的行为,就可以在运行时动态地进行扩展。
00原则:
开放-关闭原则,对扩展开放,对修改关闭(类应该免于改变,易于扩展)
咖啡店类图
装饰者图: