設計模式之代理模式

代理模式

 

1. 代理模式:

爲其他對象提供一種代理以控制對這個對象的訪問。

問題描述:

2.代碼實例解釋說明:

IgiveGift(公共接口)類,定義了Pursuit(真實實體)Proxy(代理)的公用接口,這樣就在任何使用真實實體的地方都可以使用代理。

Pursuit類,定義了Proxy所代表的真實實體。

Proxy類,保存了一個引用使得代理可以訪問實體,並提供一個與Pursuit的接口相同的接口,這樣代理就可以用來代替實體。.


#include <iostream>
#include <string>
using namespace std;

class SchoolGirl
{
public:
	string name;
};

class IGiveGift//代理接口
{
public:
	virtual void giveDolls()=0;
	virtual void giveFlowers()=0;
};

class Pursuit:public IGiveGift//追求者類
{
private:
	SchoolGirl mm;
public:
	Pursuit(SchoolGirl m)
	{
		mm=m;
	}
	void giveDolls()
	{
		cout<<mm.name<<" 送你娃娃"<<endl;	
	}
	void giveFlowers()
	{
		cout<<mm.name<<" 送你鮮花"<<endl;	
	}
};

class Proxy:public IGiveGift//代理者類
{
private:
	Pursuit gg;
public:
	Proxy(SchoolGirl mm):gg(mm)
	{
		//gg=g;
	}
	void giveDolls()
	{
		gg.giveDolls();
	}
	void giveFlowers()
	{
		gg.giveFlowers();
	}
};

int main()
{
	SchoolGirl lijiaojiao;
	lijiaojiao.name="李嬌嬌";
	Pursuit zhuojiayi(lijiaojiao); 
	Proxy daili(lijiaojiao);

	daili.giveDolls();
	return 0;
}
發佈了10 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章