博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式之结构型代理模式
阅读量:5088 次
发布时间:2019-06-13

本文共 624 字,大约阅读时间需要 2 分钟。

由于一个对象不能直接引用另一个对象,所以需要通过代理对象在这两个对象之间起到中介作用。

跨域问题应该是使用代理模式解决的一个最典型的问题。由于用户模块上传的照片量越来越大,导致服务器需要将上传模块重新部署到另外一个域中,这就导致了跨域问题。我们可以将相册页面和上传模块所在的服务器抽象成两个对象,想让跨域两端的对象之间实现通信,就需要找个代理对象来实现他们之间的通信。
代理对象有很多种,简单一点的如img之类的标签通过src可以向其他域下的服务器发送请求,不过这类请求是get请求,是单向的,不会有响应数据,另外一种代理对象的形式是通过script标签。而我们需要的代理对象,是对页面与浏览器间通信的,JSONP就实现了一种代理模式。我们知道src属性可以实现get请求,因此可以在src指向的url地址上添加一些字段信息,服务器获取这些字段信息,相应生成内容。

// 前端浏览器页面
// 另一个域下的服务器请求接口

这种方式可以想象成合理的一只小船,通过小船将你的请求发送给对岸,然后对岸的人们将数据放在小船里为你带回来。

通过代理可以先加载预览图片然后再加载开销大的图片,它可以解决系统之间耦合度以及系统资源开销大的问题,通过代理对象可以保护被代理对象,使被代理对象不受外界的影响。

转载于:https://www.cnblogs.com/camille666/p/design_pattern_struct_proxy.html

你可能感兴趣的文章
设计器 和后台代码的转换 快捷键
查看>>
STL容器之vector
查看>>
数据中心虚拟化技术
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
list 容器 排序函数.xml
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>
c#自定义控件中的事件处理
查看>>
IOS--沙盒机制
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>
sqlite的坑
查看>>