案例分析:
我们去超市买东西,会收到购物小票,上面是你购买的物品名称、数量、单价及总价等信息,以及购物时间,收银员号码等最基本的信息,这些是基本不变的。不过有时超市还会在这张票据的上面或下面打印其他信息,例如:欢迎辞、促销广告等,而且这些信息的内容及打印位置也不固定,相当于是对购物小票的额外装饰了。
意图:
为一个对象动态连接附加的指责。根据案例,本程序可为购物小票动态添加各种抬头和注释。
描述:
装饰模式是一种对象结构型模式,这种模式主要用于对象
结构图:
程序代码:
#include <iostream.h>
class cxiaopiao
{
public:
};
class cjutixiaopiao:public cxiaopiao
{
public:
};
class czhuangshixiaopiao:public cxiaopiao
{
protected:
public:
};
class header1xiaopiao:public czhuangshixiaopiao
{
public:
};
class header2xiaopiao:public czhuangshixiaopiao
{
public:
};
class footer1xiaopiao:public czhuangshixiaopiao
{
public:
};
class footer2xiaopiao:public czhuangshixiaopiao
{
public:
};
int main()
{
}
运行结果:
抬头1
票据正文
脚注1
脚注2
抬头1
抬头2
票据正文
脚注2
脚注1
Press any key to continue