什么食物会产生砒霜:装饰模式(DECORATOR)案例分析 - jia

来源:百度文库 编辑:偶看新闻 时间:2024/05/06 02:48:00
案例分析:我们去超市买东西,会收到购物小票,上面是你购买的物品名称、数量、单价及总价等信息,以及购物时间,收银员号码等最基本的信息,这些是基本不变的。不过有时超市还会在这张票据的上面或下面打印其他信息,例如:欢迎辞、促销广告等,而且这些信息的内容及打印位置也不固定,相当于是对购物小票的额外装饰了。意图:为一个对象动态连接附加的指责。根据案例,本程序可为购物小票动态添加各种抬头和注释。描述:装饰模式是一种对象结构型模式,这种模式主要用于对象结构图:  
程序代码:#include  
class cxiaopiao{public:     virtual void DaYinXiaoPiao()=0;};class cjutixiaopiao:public cxiaopiao{public:     void DaYinXiaoPiao()     {         cout<<"票据正文"<DaYinXiaoPiao();     }};class header2xiaopiao:public czhuangshixiaopiao{public:     header2xiaopiao(cxiaopiao* obj):czhuangshixiaopiao(obj){}     void DaYinXiaoPiao()     {         cout<<"抬头2"<DaYinXiaoPiao();     }};class footer1xiaopiao:public czhuangshixiaopiao{public:     footer1xiaopiao(cxiaopiao* obj):czhuangshixiaopiao(obj){}     void DaYinXiaoPiao()     {         xpobj->DaYinXiaoPiao();         cout<<"脚注1"<DaYinXiaoPiao();         cout<<"脚注2"<DaYinXiaoPiao();    cout<DaYinXiaoPiao();     return 0;}运行结果:抬头1票据正文脚注1脚注2 
抬头1抬头2票据正文脚注2脚注1Press any key to continue
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jia_xiaoxin/archive/2008/08/28/2842457.aspx