基本情况
211本985硕,算半个科班,实习和项目都勉强算有,但都极其拿不出手。C++技术栈,八股文和算法题准备还算充分,由于相关书籍看的多,对于编程理解还算深刻。
某些情况下我们可能会”过度的使用继承来扩展对象的功能“,由于继承为类型引入的静态特质(编译时装饰),使得这种扩展缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致子类的膨胀。
如何使得”对象功能的扩展“能够根据需求来动态的实现?同时避免”扩展功能的增多“带来的子类膨胀问题?从而使得任何”功能扩展变化“所导致的影响降为最低。
装饰模式是一种结构型设计模式,允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator
模式比生成子类(继承)更为灵活(消除重复代码以及减少子类个数)。