网站首页布局,一台服务器可以做几个网站,wordpress 快速回复,led灯具网站模板代理模式 代理模式( Proxy)#xff1a;为其他对象提供一种代理以控制对这个对象的访问。 参考#xff1a;refactoringguru | proxy 什么是代理模式
有时候如果想要访问某个对象#xff0c;但又没办法直接访问或不方便直接访问#xff0c;可以使用代理模式#xff0c;代理…代理模式 代理模式( Proxy)为其他对象提供一种代理以控制对这个对象的访问。 参考refactoringguru | proxy 什么是代理模式
有时候如果想要访问某个对象但又没办法直接访问或不方便直接访问可以使用代理模式代理模式为想要访问的那个真实对象提供一种“替身”将客户端直接对服务端的访问转换为客户端只与代理交互由代理处理具体的和服务端的交互代理模式有四种角色分别是
客户端服务端代理抽象服务接口 代理中保留一个真实Server的对象并且代理和真实Server实现同一个接口这样对客户端来说Proxy就可以代替Server了客户端想要调用Server的某个方法时直接与代理交互再由代理去调用Server的具体方法。
代理的优缺点
优点 你可以在客户端毫无察觉的情况下控制服务对象。如果客户端对服务对象的生命周期没有特殊要求 你可以对生命周期进行管理。即使服务对象还未准备好或不存在 代理也可以正常工作。开闭原则。 你可以在不对服务或客户端做出修改的情况下创建新代理。 缺点 代码可能会变得复杂 因为需要新建许多类。服务响应可能会延迟。 代理的类型和使用场景
1. 远程代理
当我们需要一个远程对象时可以通过一个本地代理去访问所谓远程对象是指远程的资源包括可能不同命名空间不同机器的资源等如果客户端直接访问远程资源可能涉及到复杂的数据交互和传输通过代理我们可以把这些数据交互和传输的过程隐藏在代理里面由代理去与远程资源交互并返回客户端需要的数据这样对客户端来说访问远程资源就和访问本地资源一样了。以此简化客户端代码。
2. 虚拟代理
虚拟代理的主要作用是延迟初始化 如果你有一个偶尔使用的重量级服务对象一直保持该对象运行会消耗系统资源, 时可使用代理模式. 你无需在程序启动时就创建该对象 可将对象的初始化延迟到真正有需要的时候。 比如网站图片的加载, 真实的图片可能很大,如果在构造的时候就直接加载真实的图片,就会导致加载时间过长,所以可以使用代理,用很小的缩略图来代替真实的图片,直到用户点机缩略图时再异步的加载大图.
虚拟代理应该使用缓存避免重量级对象多次重复加载.
3. 保护代理
如果只有拥有特定权限的用户才能访问特定对象,就可以在代理中对用户权限进行判断,并根据权限返回不同的结果.