一、价值
避免子类继承父类导致的程序臃肿性。
二、概念:
又名包装模式。动态的给一个对象添加额外的职责。就是扩展功能而言,它比生成子类的方式更加灵活。
三、结构
抽象组件;
被装饰者;
装饰者组件;
具体装饰;
四、优点
目的在于扩展对象的功能。装饰者模式提供比继承更好的灵活性。装饰是动态的,运行时可以修改的;继承是静态的,编译期便已确定好。
通过使用不同的装饰类及对它们的排列组合,可以创造出许多不同行为的组合。
五、缺点
产生很多的小对象,大量的小对象会占用内存。
组合方式很多。容易出错。
不就是继承的改进?