1. 装饰者模式简介
装饰者模式是动态的给一个对象添加一些额外的职责;装饰者模式让我们能够比使用子类更方便的扩展功能;
在装饰者模式中,我们可以把类的核心功能和装饰功能分开,这样就控制了类的复杂度;需要扩展时,客户可以根据自己的需要,有选择的使用装饰功能来包装对象;
装饰者模式也是“多用组合,少用继承”这个原则的一个应用;方便可以进行扩展功能的同时,对修改也是关闭的(“对扩展开发,对修改关闭”原则);但同时,带来的一个坏处就是会增加一些小的装饰类,构造对象比较复杂;
2. 多用组合,少用继承
继承是一种编译时的静态行为,而且所有的子类都会继承到相同的行为(基类的public和protected方法),但是子类并不一定想继承基类的所有方法;
对于组合,可以在运行时动态的进行扩展,同时可以方便的控制类需要提供的方法;