JavaScript设计模式-代理模式(12)

简介: JavaScript设计模式-代理模式(12)

代理设计模式其重心是代理,代理在生活中也十分常见,比如一个服装店开遍了全国,他们如果统一进行管理,事情比较繁多,这个时候就可以去让一些人去做地区代理商,让他们帮忙去处理他们所在地区的服装店,这便是生活中的代理设计模式


代理设计模式工作中也经常使用,当前端访问后端的服务时,通过访问只是一个代理服务,这个代理服务将把请求代理到和自己属于同一个区域网下的内部服务器上,而前端真正的请求会打在这些内部服务器上.

image.png

以上就是在工作中使用的场景,下面我们用代码实现一个代理设计模式

代理设计模式案例


小明一直喜欢小红,但是不知道小红喜欢不喜欢自己,这个时候就可以委托小红的闺蜜小兰带着自己的礼物去代替自己表白并问一下小红对自己的心意

我们创建三个对象分别代表小红和小兰以及小明,礼物用构造函数的方式来代表

礼物,礼物构造函数接收俩个参数,一个是送礼人,一个是什么礼物

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);

代理设计模式可扩展性强,它可以在原有功能不变的情况下直接使用,可以隔开目标类和使用者

坚持努力,不惧未来!

相关文章
|
18天前
|
设计模式 缓存 Java
「全网最细 + 实战源码案例」设计模式——代理模式
代理模式(Proxy Pattern)是一种结构型设计模式,通过代理对象控制对目标对象的访问并添加额外功能。它分为静态代理和动态代理,后者包括JDK动态代理和CGLIB动态代理。JDK动态代理基于接口反射生成代理类,而CGLIB通过继承目标类生成子类。代理模式适用于延迟初始化、访问控制、远程服务、日志记录和缓存等场景,优点是职责分离、符合开闭原则和提高安全性,缺点是增加系统复杂性。
69 25
|
1月前
|
设计模式 数据安全/隐私保护
Next.js 实战 (七):浅谈 Layout 布局的嵌套设计模式
这篇文章介绍了在Next.js框架下,如何处理中后台管理系统中特殊页面(如登录页)不包裹根布局(RootLayout)的问题。作者指出Next.js的设计理念是通过布局的嵌套来创建复杂的页面结构,这虽然保持了代码的整洁和可维护性,但对于特殊页面来说,却造成了不必要的布局包裹。文章提出了一个解决方案,即通过判断页面的skipGlobalLayout属性来决定是否包含RootLayout,从而实现特殊页面不包裹根布局的目标。
90 33
|
2月前
|
设计模式 前端开发 数据安全/隐私保护
前端必须掌握的设计模式——代理模式
代理模式(Proxy Pattern)是一种结构型设计模式,通过引入“替身”对象来间接访问真实对象,从而解耦并提升性能和安全性。例如,知名艺人复出后,经纪人作为代理筛选商单,确保只处理符合团队利益的请求。代码实现中,定义接口`IService`,艺人和经纪人都实现该接口,经纪人在访问时进行过滤和转发。代理模式常用于权限控制、性能优化等场景,如前端中的Tree-shaking和ES6的Proxy构造方法。
前端必须掌握的设计模式——代理模式
|
3月前
|
设计模式 前端开发 JavaScript
JavaScript设计模式及其在实战中的应用,涵盖单例、工厂、观察者、装饰器和策略模式
本文深入探讨了JavaScript设计模式及其在实战中的应用,涵盖单例、工厂、观察者、装饰器和策略模式,结合电商网站案例,展示了设计模式如何提升代码的可维护性、扩展性和可读性,强调了其在前端开发中的重要性。
57 2
|
5月前
|
设计模式 缓存 安全
设计模式——代理模式
静态代理、JDK动态代理、Cglib 代理
设计模式——代理模式
|
4月前
|
设计模式 JavaScript 前端开发
JavaScript设计模式--访问者模式
【10月更文挑战第1天】
49 3
|
5月前
|
设计模式 Java 数据安全/隐私保护
Java设计模式-代理模式(7)
Java设计模式-代理模式(7)
|
6月前
|
设计模式 JavaScript 前端开发
从工厂到单例再到策略:Vue.js高效应用JavaScript设计模式
【8月更文挑战第30天】在现代Web开发中,结合使用JavaScript设计模式与框架如Vue.js能显著提升代码质量和项目的可维护性。本文探讨了常见JavaScript设计模式及其在Vue.js中的应用。通过具体示例介绍了工厂模式、单例模式和策略模式的应用场景及其实现方法。例如,工厂模式通过`NavFactory`根据用户角色动态创建不同的导航栏组件;单例模式则通过全局事件总线`eventBus`实现跨组件通信;策略模式用于处理不同的表单验证规则。这些设计模式的应用不仅提高了代码的复用性和灵活性,还增强了Vue应用的整体质量。
92 1
|
6月前
|
设计模式 缓存 Java
【十一】设计模式~~~结构型模式~~~代理模式(Java)
文章详细介绍了代理模式(Proxy Pattern),这是一种对象结构型模式,用于给对象提供一个代理以控制对它的访问。文中阐述了代理模式的动机、定义、结构、优点、缺点和适用环境,并探讨了远程代理、虚拟代理、保护代理等不同代理形式。通过一个商务信息查询系统的实例,展示了如何使用代理模式来增加身份验证和日志记录功能,同时保持客户端代码的无差别对待。此外,还讨论了代理模式在分布式技术和Spring AOP中的应用,以及动态代理的概念。
【十一】设计模式~~~结构型模式~~~代理模式(Java)
|
6月前
|
设计模式 JavaScript 前端开发
小白请看 JS大项目宝典:设计模式 教你如何追到心仪的女神
小白请看 JS大项目宝典:设计模式 教你如何追到心仪的女神

热门文章

最新文章