设计模式---代理模式 实例
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
李娇娇
李娇娇送你洋娃娃
李娇娇送你花
李娇娇送你巧克力
#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
李娇娇
李娇娇送你洋娃娃
李娇娇送你花
李娇娇送你巧克力
相关文章推荐
- 结合项目实例 回顾传统设计模式(十一)代理模式
- 设计模式(二十一)-代理模式(Proxy Pattern)——只在必要时生成实例
- Java使用设计模式中的代理模式构建项目的实例展示
- 23种设计模式C++实例之代理模式
- Net设计模式实例之代理模式(Proxy Pattern) 推荐
- Java设计模式之代理模式与装饰模式实例详解
- Objective-C之代理设计模式小实例
- Python设计模式之代理模式实例
- Java使用设计模式中的代理模式构建项目的实例展示
- 设计模式----代理模式通俗实例
- C++设计模式编程中proxy代理模式的使用实例
- 结合项目实例 回顾传统设计模式(十一)代理模式
- Ruby使用设计模式中的代理模式与装饰模式的代码实例
- Net设计模式实例之代理模式(Proxy Pattern)
- 设计模式之代理模式实例
- Java设计模式之静态代理模式实例分析
- 设计模式之---代理模式实例
- Java设计模式之动态代理模式实例分析
- 实例讲解Java设计模式编程中如何运用代理模式
- 实例讲解如何在iOS应用开发中使用设计模式中的代理模式