c 设计模式之装饰模式怎么实现-mile米乐体育

c 设计模式之装饰模式怎么实现

本文小编为大家详细介绍“c 设计模式之装饰模式怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“c 设计模式之装饰模式怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

装饰模式是一种经典的类功能扩展模式,其精髓在装饰类使用继承加聚合的方式获得接口和要实现对象,然后通过自己实现扩展接口

作用
装饰模式通过装饰类动态地将责任附加到对象上,若要扩展功能,无需通过继承增加子类就能扩展对象的新功能,提供了比继承更有弹性的替代方案,避免了子类数量膨胀带来的系统臃肿。

代码实现

classcomponent{public:component(){}virtual~component(){}virtualvoidoperation()=0;};classconcretecomponenta:publiccomponent{public:concretecomponenta(){}~concretecomponenta(){}voidoperation(){fprintf(stderr,"concretecomponenta'soperation!\n");}};classconcretecomponentb:publiccomponent{public:concretecomponentb(){}~concretecomponentb(){}voidoperation(){fprintf(stderr,"concretecomponentb'soperation!\n");}};classdecorator:publiccomponent{public:decorator():mcomponent(null){}virtual~decorator(){}virtualvoidoperation(){if(mcomponent)mcomponent->operation();}virtualvoidsetcomponent(component*pcomponent){mcomponent=pcomponent;}protected:component*mcomponent;};classconcretedecoratore:publicdecorator{public:concretedecoratore();virtual~concretedecoratore();virtualvoidaddbehavior(){mcomponent->operation();fprintf(stderr,"concretedecoratore'saddbehavior!\n");}};classconcretedecoratorf:publicdecorator{public:concretedecoratorf();virtual~concretedecoratorf();virtualvoidaddbehavior(){operation();fprintf(stderr,"concretedecoratorf'saddbehavior!\n");}};intmain(){concretecomponentb*pcomponent=newconcretecomponentb();concretedecoratorfdecorator;decorator.setcomponent(pcomponent);decorator.addbehavior();}

读到这里,这篇“c 设计模式之装饰模式怎么实现”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注恰卡编程网行业资讯频道。

展开全文
内容来源于互联网和用户投稿,文章中一旦含有米乐app官网登录的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系米乐app官网登录删除

最新文章

网站地图