代理设计模式其重心是代理,代理在生活中也十分常见,比如一个服装店开遍了全国,他们如果统一进行管理,事情比较繁多,这个时候就可以去让一些人去做地区代理商,让他们帮忙去处理他们所在地区的服装店,这便是生活中的代理设计模式
代理设计模式工作中也经常使用,当前端访问后端的服务时,通过访问只是一个代理服务,这个代理服务将把请求代理到和自己属于同一个区域网下的内部服务器上,而前端真正的请求会打在这些内部服务器上.
以上就是在工作中使用的场景,下面我们用代码实现一个代理设计模式
代理设计模式案例
小明一直喜欢小红,但是不知道小红喜欢不喜欢自己,这个时候就可以委托小红的闺蜜小兰带着自己的礼物去代替自己表白并问一下小红对自己的心意
我们创建三个对象分别代表小红和小兰以及小明,礼物用构造函数的方式来代表
礼物,礼物构造函数接收俩个参数,一个是送礼人,一个是什么礼物
function Gift(owner, name) { this.owner = owner; this.name = name; }
小明,小明有一个送礼的方法,她先去买礼物然后把这个礼物交给要代自己表达心意的人
const xm = { sendGift(target) { const flower = new Gift('小红', '音乐盒'); target.receiveFlower(flower) } }
小兰,小兰有一个代接收礼物的方法,最后在把这个礼物转交给小红
// 小兰 const xl = { receiveFlower(flower) { xh.receiveFlower(flower) } }
小红,小红有一个接收礼物的方法,接收礼物后再进行打开看看是谁送的礼物
const xh = { receiveFlower(flower) { const { owner, name } = flower; console.log(`${owner}=>${name}`); } }
使用,小明让小兰代替自己去和小红表白,然后小兰拿到礼物之后调用小红的接收礼物方法,小红打开礼物查看
xm.sendGift(xl);
代理设计模式可扩展性强,它可以在原有功能不变的情况下直接使用,可以隔开目标类和使用者
坚持努力,不惧未来!