🔥【设计模式】代理模式
这是我参与8月更文挑战的第8天,活动详情查看:8月更文挑战
没有中间代理的时候我们看一下
UML类图:
代码演示:
说明:
上面事例中有一个重要的问题是明明现实中租客和房东是不认识的,可是看起来他们已经很熟悉了,实际中不排除但是不认识的情况居多,我们往往还是需要中介的介入来帮助我们搞定租房的一系列问题如:房源,房东。。。
引入我们本篇的关键人物代理(中间商,XX平台)
UML类:
代码演示:
说明:
通过UML类图似乎看不出来什么变化,引入了代理类,也将租房抽象成类接口,但是我们可以通过最后的代码执行代码块看的出来,我们租赁房子全程由Beike中介来帮忙,我们坐等入住即可,是不是很方便呢。
代理模式
为其他对象提供一种新的访问这个对象的方式-代理
UML类图:
- Subject:将代理对象和真实实体的对象的功能进行抽象。
- Proxy: 保存实体对象并代理其功能。
- RealSubject:代理对象所帮助的真实实体。
abstract class Subject { public abstract request(): void; }
class RealSubject extends Subject { public request(): void { console.log("我是租客我要租房子。"); } }
class MyProxy extends Subject { realSub: RealSubject; public request(): void { if (!this.realSub) this.realSub = new RealSubject(); this.realSub.request(); } }
new MyProxy().request();
说明:
通过上面的代码和类图可以看到,我们只要找到能干活的中介我们就可以省很多事。能干事的中介绑定了我们的信息,最好还是个只在一家(私有)中介绑定信息最好。
总结
其实我们经常会听到代理,因为在新项目初次调试接口经常会遇到跨域的问题,我们除了让后端去允许我们的跨域访问外就是通过不同手段来使用代理将我们真实的请求由代理服务来做。 代理的作用就是在我们不方便的时候可以代替我们去做一些事情,你觉得靠谱吗?🤔️🤔️🤔️
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)