单件模式之土著人的可乐瓶
2008-08-09 19:26:13 来源:WEB开发网本文示例源代码或素材下载
话说一群土著人生活地球的某个不为人知的地方,他们过着和谐、快乐的日子。但是好景不长,一只从天上掉下来的玻璃瓶打破了这美好的时光。这只玻璃瓶用处非常广泛,有的土著人用它来砸地瓜,有的用它来吹口哨,有的用它来擀蛇皮……,渐渐地大家干活、娱乐都离不开它了,于是产生了争抢使用可乐瓶的情况,为了获得原有的和谐气氛,一个土著人决定扔掉这个瓶子……
剧情讲完了,我们先为这个瓶子定义一个类:class CGlassBottle
我们定义一个土著人A类,假设他只用玻璃瓶砸地瓜:
{
private:
CGlassBottle();
public:
virtual ~CGlassBottle();
public:
static BOOL OnKnock();//砸
static BOOL OnBlow();//吹
static BOOL OnRoll();//擀
protected:
static BOOL s_bUsed;//是否正在被使用
};class A//土著人A
我们再定义一个土著人B类,假设他只用玻璃瓶吹口哨:
{
public:
void UseBottle()
{
CGlassBottle::OnKnock();
};
};class B//土著人B
现在我们定义土著人A、B类的对象,让他们执行UseBottle:
{
public:
void UseBottle()
{
CGlassBottle::OnBlow();
};
};int main(int argc, char* argv[])
我们来执行一下,看看结果:
{
A a;
B b;
a.UseBottle();//执行Knock
b.UseBottle();//执行blow
return 0;
}
赞助商链接