代理模式
由于一个对象不能直接引用另一个对象,所以需要通过代理对象在这两个对象之间起到中介的作用
实例
跨域问题,在不同的域之间是不能直接访问的,这时候我们就需要一个对象来作为中间桥梁让两个对象能够相互访问。一类解决思路就是通过代理的思想,比如JSONP,ajax脚本不能够直接访问数据库,但是script标签可以,这时候script标签就可以充当代理的角色,让浏览器脚本和另一个域下的服务器进行通信。
还有就是可以通过服务器代理,浏览器访问同源的服务器没有限制,而且这个限制只存在与浏览器,所以可以脚本先向自己的服务器发送信息,自己的服务器再去请求其他的域,服务器得到数据之后再返回给前端。
总结
代理对象可以解决被代理对象域外界对象之间的耦合。
有时对象的实例化对资源的开销很大,如页面加载初期加载文件有很多,此时能够延迟延迟加载一些图片对页面首屏加载时间的收益页很大。
又比如图片预览界面,可以先加载一张预览图,当用户点击的时候在加载大图。
思考
代理模式的思想实在两个对象之间添加一层代理,代理可以作为双方之一与另一方通信,并将数据返回给被代理对象。