用C++跟你聊聊“代理模式”

   日期:2020-05-15     浏览:98    评论:0    
核心提示:文章目录帮兄弟追小姑娘的故事如何当好一名出色的“代理”和代理一起追小女生的代码实现代理模式应用场景帮兄弟追小姑娘的故事弄这个模式的时候啊,这心里多多少少还是有点蓝瘦。以前不懂事儿,看上哪个姑娘,自己还不敢说,总是让身边的朋友来“代理”。反正最后也没成。那这么个“代理”是怎么回事呢?比方说,我买个东西,然后朋友帮我送过去;有些啥不好意思说的话,然后朋友帮我说;有时候想约人家出来玩,还是朋友来“代理一下”吧,不敢哈哈。最后怎么样呢?我喜欢人家,人家不知道,反正啥事儿都是“代理”在干。放在设计模式中.c/c++


文章目录

    • 帮兄弟追小姑娘的故事
    • 如何当好一名出色的“代理”
    • 和代理一起追小女生的代码实现
    • 代理模式应用场景

帮兄弟追小姑娘的故事

弄这个模式的时候啊,这心里多多少少还是有点蓝瘦。以前不懂事儿,看上哪个姑娘,自己还不敢说,总是让身边的朋友来“代理”。
反正最后也没成。

那这么个“代理”是怎么回事呢?比方说,我买个东西,然后朋友帮我送过去;有些啥不好意思说的话,然后朋友帮我说;有时候想约人家出来玩,还是朋友来“代理一下”吧,不敢哈哈。

最后怎么样呢?我喜欢人家,人家不知道,反正啥事儿都是“代理”在干。

放在设计模式中,还真有个模式,叫“代理模式”。不过人家这个“代理模式”,可不是因为羞涩,而是有些事情,本尊不方便出面,只能请“代理”了。

放眼生活中,这个中间商赚差价是吧、这个私家侦探抓小四是吧、这个跳大神是吧,这些都是“代理模式”。

如何当好一名出色的“代理”


首先,一名合格的代理,要原滋原味的转述业主的需求,这个简单,直接调用业主的类方法就好了。
其次,一名优秀的代理,要保护好业主的个人信息,保证目标对象不发现这个业主。
然后,这个代理要确实搞笑,不对,高效。不然要这个代理干嘛?自己来不就爱好了。

如果有看过这篇:依赖倒转原则,那我们就来看看类图:

和代理一起追小女生的代码实现

#include<iostream>
#include<string>

using namespace std;

//代理接口
class GiveGift
{
	virtual void GiftFlowers() = 0;
// virtual void GiftFilm() = 0;
	virtual void GiftDinner() = 0;
};

//被追求的小姑娘
class girl
{
public:
	string name;
public:
	girl() {}
	void Name(string str) { name = str; }
};

//追求者
class pursuit :public GiveGift
{
	girl* a;
public:
	pursuit(girl *k) { a = k; }
	void GiftFlowers() { cout << a->name<<", 送你花花" << endl; }
// void GiftFile() { cout<<a->name << ",勤看电影"<<endl; }
	void GiftDinner() { cout<<a->name << ",一起吃个晚饭吗?" << endl; }
};

class proxy :public GiveGift
{
	pursuit* pur;
public:
	proxy(girl* a) { pur = new pursuit(a); }

	void GiftFlowers() { pur->GiftFlowers(); }
	void GiftDinner() { pur->GiftDinner(); }
};

int main()
{
	girl* b = new girl();
	b->Name("啊钒");

	proxy* p = new proxy(b);

	p->GiftDinner();
	p->GiftFlowers();

	return 0;
}

代理模式应用场景

①远程代理:为一个对象在不同的地址提供不同的代表,这样可以隐藏一个对象存在于不同地址空间的事实。比方说:XXX公司亚洲区总代理。

②虚拟代理:根据需要创建开销很大的对象,通过它来存放初始化时间很长的真实对象。

③安全代理:用于控制真实对象访问时的权限。

④智能指引:调用真实对象时,代理处理另外一些事情。

代理模式其实就是在访问对象时认为的加入一些中间过程,而这些中间过程,就可以大有文章。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服