商业鬼才教你 代理模式

在这里插入图片描述

故事线

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

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

好极,就这样的苛刻条件,前来应聘的人络绎不绝啊,为啥呢?一个店铺一个月的净利润是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();
}

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

扫描二维码关注公众号,回复: 11770679 查看本文章

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

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


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

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


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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43762191/article/details/108699873