您的位置:首页 > 其它

设计模式---代理模式 实例

2015-05-19 12:56 295 查看
#include <iostream>

#include <string>

using namespace std;

class schoolGirl

{

private:

string m_name;

public:

schoolGirl(string girl_name):m_name(girl_name){}

string getname()

{

return m_name;

}

};

class giveGift

{

public:

virtual void giveDolls() = 0;

virtual void giveFlowers() = 0;

virtual void giveChocolate() = 0;

};

class pursuit : giveGift

{

private:

schoolGirl *mm;

public:

pursuit(schoolGirl *ma):mm(ma) {}

void giveDolls()

{

cout<<mm->getname()<<"送你洋娃娃\n";

}

void giveFlowers()

{

cout<<mm->getname()<<"送你花\n";

}

void giveChocolate()

{

cout<<mm->getname()<<"送你巧克力\n";

}

};

class proxy : giveGift

{

private:

pursuit *gg;

public:

proxy(schoolGirl *mm ):gg(new pursuit(mm)) {}

void giveDolls()

{

gg->giveDolls();

}

void giveFlowers()

{

gg->giveFlowers();

}

void giveChocolate()

{

gg->giveChocolate();

}

};

int main()

{

string name;

schoolGirl *jiaojiao = new schoolGirl("李娇娇");

name = jiaojiao->getname();

cout<<name<<"\n";

/*

pursuit *gg = new pursuit(jiaojiao);

gg->giveDolls();

*/

proxy *daili = new proxy(jiaojiao);

daili->giveDolls();

daili->giveFlowers();

daili->giveChocolate();

return 0;

}

运行结果:

ngnsvr9 [** NONE **]/home/xionghailong/demo/pro $ g++ main.cpp -o main

ngnsvr9 [** NONE **]/home/xionghailong/demo/pro $ ./main

李娇娇

李娇娇送你洋娃娃

李娇娇送你花

李娇娇送你巧克力
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: