C++模式设计:Decorator 装饰模式

一、应用场景举例 需要设计圆、矩形两种形状,同时设计这两种形状的红色、蓝色版本,按照传统的思路,使用继承的方式,则如下图: 按这种方式,当需要的形状和颜色种类增多时,所定义的类的数量将会急剧增多,而且类之间会有很多重复的代码。如果运用装饰模式的思想,依照“组合优先于继承”原则,将“颜色”单独定义为一个“装饰类”,该类也继承自抽象基类,且拥有一个抽象基类的指针,用于操作传入的不同的形状对象。这样,在
相关文章
相关标签/搜索