时代热点
自今年3月起,一档名为《王婆说媒》的相亲栏目,火速走红网络。而在节目中扮演王婆一角的赵梅,更是收获大量的人气,短短15天涨粉500万。 在开封万岁山武侠城景区的说媒现场,每天都有成千上万的人聚集在那里,完美还原了《清明上河图》,王婆凭借一己之力带火了整个景区。就连情感导师涂磊,也在直播中连线王婆。 想必大家也特别希望能在王婆说媒的舞台上牵手一位年轻美丽的plmm吧!!
我们今天要来聊一聊到底什么才是王婆说媒能够一夜爆火的 根本原因呢:
说到底最重要的是它的设计模式,王婆说媒采取的手法是23种设计模式中的代理模式,我们今天主要就代理模式展开...
代理模式
何为代理模式?
代理模式是软件工程中的一种设计模式,属于结构型设计模式的一种。它提供了一种机制,允许对象通过代理(Proxy)来访问另一个对象(目标对象或真实对象),这样做的目的是为了控制对目标对象的访问、增加功能或者改变其访问方式,而不需要直接访问目标对象本身。简而言之就像是生活中的“中介”或者“代理人”的概念。想象一下你想要租一套房子,但你没有时间亲自去看每一套房源,这时候你就可能会找一个房产中介。 而王婆就是中介和代理者的存在....
实例
实例介绍:小美站上了王婆说媒的舞台,台下一阵欢呼,因为小美实在太美丽动人了,台下大多数人蠢蠢欲动,小明按耐不住心中的欲火,叫朋友们开辟了一条道路把自己抬了上去,一上台小明就表达了自己的心意,夸赞了女生的气质,想要有进一步的了解.
转换为js代码,生成小明对象,它有一个表白的方法professLove()
const xh = {
name: '小华',
age: 20,
sex: '男',
school: '东华理工大学',
professLove:function(target){
target.professLove(this);
}
}
生成小美对象,她有一个满意度属性xq,和接受表白的方法receiveLove(),如果xq>80的话,小美会接受表白,交出wx二维码..
const xm={
name:'小美',
xq:50,
receiveLove: function(sender){
if(this.xq>80){
console.log(`${this.name}接受了${sender.name}的表白`);
console.log("万达走一波");
}else{
console.log("不接受,换人");
}
}
}
但是此时就有问题出现了,如果没有王婆的存在,女生如果不满意直接拒绝会让男生很尴尬,而且男生会不清楚女生内心到底是什么想法,所以王婆这个代理人出现了,她的角色是通过双方的传话,委婉地传达对方的心意...
const wp = {
name:'王婆',
receiveLove: function(sender){
//代替小美收花,实现同样的方法,也就是接口
if(xm.xq<80){
console.log('你们俩不合适');
}else{
xm.receiveFlower(sender);
}
}
}
通过同样的receiveLove()方法,实现代理者模式。这样一来双方就都不会冷场尴尬了...
小结
这样一个简单的js实例是不是能让大家更清楚地了解代理模式是如何实现的,它到底在复杂现实中有何作用。它主要是通过同名的方法,通过不同的对象调用,再将调用者的参数传入,就能够得到相应的结果了...
希望各位都能碰上一位靠谱的王婆,给自己说一个特别满意的对象....