?【设计模式】代理模式
2023-02-18 16:41:30 时间
没有中间代理的时候我们看一下
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("我是租客我要租房子。");
}
}
```typescript class MyProxy extends Subject { realSub: RealSubject;
public request(): void { if (!this.realSub) this.realSub = new RealSubject(); this.realSub.request(); } }
```typescript
new MyProxy().request();
说明:
通过上面的代码和类图可以看到,我们只要找到能干活的中介我们就可以省很多事。能干事的中介绑定了我们的信息,最好还是个只在一家(私有)中介绑定信息最好。
总结
其实我们经常会听到代理,因为在新项目初次调试接口经常会遇到跨域的问题,我们除了让后端去允许我们的跨域访问外就是通过不同手段来使用代理将我们真实的请求由代理服务来做。 代理的作用就是在我们不方便的时候可以代替我们去做一些事情,你觉得靠谱吗??️?️?️
相关文章
- React源码学习进阶篇(一)新版React如何调试源码?
- React源码学习进阶(二)初识Fiber架构
- React源码学习进阶(三)rootFiber的创建流程
- React源码学习进阶(四)render流程的入口逻辑详解
- React源码学习进阶(五)beginWork如何处理Fiber
- React源码学习进阶(六)completeWork究竟做了什么
- React源码学习进阶(七)挂载阶段的commitWork
- React源码学习进阶(八)setState底层逻辑
- MATLAB随机波动率SV、GARCH用MCMC马尔可夫链蒙特卡罗方法分析汇率时间序列|附代码数据
- R语言Apriori关联规则、kmeans聚类、决策树挖掘研究京东商城网络购物用户行为数据可视化|附代码数据
- 电量计基础知识介绍:
- 瞧瞧别人家的API接口,那叫一个优雅
- 暴增到 1k star 的开源项目,原来长这样!
- 程序员必备小技能:mac文件备份和清理、常用工具的安装和配置
- 前端小技能:Chrome DevTools中的操作技巧
- SOLIDWORKS 基于浏览器的角色 TOP 10 增强功能
- java小技能:对list集合根据条件进行分组、过滤和字段筛选
- mybatis-plus小技能
- Java小技能:快速创建List常用几种方式
- DBA的技术方向