商业鬼才教你 代理模式

举报
看,未来 发表于 2020/12/30 00:29:00 2020/12/30
【摘要】 故事线 经过一番打拼,广军觉得这个模式挺好用的,赚钱多,他就想着啊,既然这套模式这么的好,那我为什么不开连锁店? 对咯,人手不够啊,“安得猛士兮守四方?” 于是,他马上出了招聘广告,预计需要三个店长,因为他想开三家连锁,然后他自己当那个“幕后黑手”,这小日子过得,岂不美哉? 但是吧,他又怕找了这些店长之后,这些店长的办事风格和他不一样,破坏了老用户的体验,万一照...

在这里插入图片描述

故事线

经过一番打拼,广军觉得这个模式挺好用的,赚钱多,他就想着啊,既然这套模式这么的好,那我为什么不开连锁店?
对咯,人手不够啊,“安得猛士兮守四方?”

于是,他马上出了招聘广告,预计需要三个店长,因为他想开三家连锁,然后他自己当那个“幕后黑手”,这小日子过得,岂不美哉?
但是吧,他又怕找了这些店长之后,这些店长的办事风格和他不一样,破坏了老用户的体验,万一照成了客户流失就不好了,于是他规定:各位店长执行工作时,以我的工作方式为准则,可以超越,但是不能篡改!

好极,就这样的苛刻条件,前来应聘的人络绎不绝啊,为啥呢?一个店铺一个月的净利润是3W(税前),他直接给店长开了1W工资,好家伙,真是会算账,不愧是我们的广军。想想,多少人挤破头,头悬梁锥刺股,到头来一个月也就一万多,而跟着广军混,吃香的喝辣的。而广军的纯收入也就从一开始的2W变成了6W,工作量从996变成了,不知道,广军胸怀大志,肯定有更重要的事情要做,说不定在盘算着盘下哪家店呢。


而他找的这些店长,也并非等闲之辈,各个都“身怀绝技”,在广军教他们做事的基础上,又添加了自己的做事方法,比如说,客户点菜前给用户推荐每周的优惠套餐,用户点菜后送一杯免费的茶,这些举动都深深的抓住了客户们的心,由此,广军的汉堡店的生意蒸蒸日上,他也把这些店长的工资做了不同程度上的提高。

故事到此就结束了吗?并不是的。你以为这些店长们都只有这么一个身份吗?你错了,其实,他们当中有的是打印店的老板,所以给用户打印小传单,有的是饮料店的推销员,所以给客户准备一些免费的茶,反正羊毛出在羊身上,销量增加,广军也就睁一只眼闭一只眼了,这是我们广军的容人之量,鬼才就是鬼才,知人善用。

代理模式

何为代理模式?这就是代理模式。

代理模式,控制对一个对象的访问。为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

那我们先来看一下广军找店长这件事情的类图呈现:
在这里插入图片描述

再来看一下代码实现:

#include<iostream>

using namespace std;

//抽象主题
class abstractMan {
public:
	virtual void run() = 0;
};

class boss :public abstractMan {
public:
	void bread() { cout << "bread" << endl; }
	void roast() { cout << "roust" << endl; } void run() {
		bread();
		roast();
	}
};

//代理
class proxy :public abstractMan {
public:
	proxy(abstractMan* temp) { a = temp; }
	void before(){
		cout<<"before"<<endl;
		//该干嘛干嘛
	}
	void after(){
		cout<<"after"<<endl;
		//爱干嘛干嘛
	}

	void run() { before();
		a->run();
		after();
	}
private:
	abstractMan* a;
};

//场景
int main()
{
	abstractMan* bs = new boss();
	proxy* pro = new proxy(bs);
	pro->run();
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

代理里面的before和after方法,就是给代理的自由权限。

在Java里面,有时候会看到说静态代理和动态代理的,那诸君看看我上边那个是静态的,还是动态呢?

小tip:
静态:一个代理绑死一个客户
动态:根据场景确定代理对象,可支持多代理。


多代理:
前边说道,某个店长他们可能会身兼多职,那么就相当于他们有多重代理身份,这些又该如何实现?代理中的before和after方法又该如何取舍?(代理类是自己写的,被代理类是封装好的)

一千个读者自有一千个哈姆雷特,相信大家想想就会有自己的想法了。


广军的故事还会持续更新,看故事,学模式,跟紧我

在这里插入图片描述

文章来源: lion-wu.blog.csdn.net,作者:看,未来,版权归原作者所有,如需转载,请联系作者。

原文链接:lion-wu.blog.csdn.net/article/details/108699873

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。