设计模式——代理模式

代理模式是一种对象结构型模式,它为某一个对象提供一个代理以控制对该对象的访问。通过代理,可以在调用真实对象之前或之后执行额外的操作,例如控制权限、缓存结果或提供远程访问。代理模式在远程代理、虚拟代理、保护代理等多个场景中有广泛应用,能有效降低系统耦合度,但也可能导致请求处理速度变慢。
摘要由CSDN通过智能技术生成

代理模式

1.代理模式动机及定义

1.1模式动机

        某人要找对象,但是由于某些原因(如工作太忙)不能直接去找,于是委托一个中介机构去完成这一过程,如婚姻介绍所,在这里婚姻介绍所就是一个代理,与此相类似的还有房屋中介,职业中介,它们充当的都是一个代理的角色。所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在我们所开发的软件系统中有时候也存在这样的情况,如调用一个远程的方法,需要在本地设置一个代理,使得就像调用本地方法一样来使用远程的方法,这实际上就是RMI,Web Service等的实现原理。

        在某些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用。代理对象可以在客户端和目标之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务。

        如在网页上查看一张图片,由于网速等原因图片不能立即显示,可以在图片传输过程中先把一些简单的用于描述图片的文字(或者小图片)传输到客户端,此时这些文字(或者小图片)就成为了图片的代理。

        再举一个例子,如果某台远程服务器提供了一个功能强大的加密算法,而现在正在开发的系统又需要使用到该算法,由于该算法位于远程服务器端,封装该算法的对象就位于远程服务器的内存中,本地内存中的对象无法直接访问,因此需要通过一个远程代理的机制来实现对远程对象的操作。

        以上两个例子都引入了一个新的对象(如小图片和远程代理对象)来实现对真实对象的操作或者将新的对象作为真实对象的一个替身,这种实现机制即为代理模式,通过引入代理对象来间接访问一个对象,这就是代理模式的动机。

1.2模式定义

        代理模式(Proxy Pattern)定义:给某一个对象提供一个代理,并由代理对象控制对原对象对引用。代理模式对英文叫做Proxy或Surrogate,它是一种对象结构型模式。

        英文定义:“Provide a surrogate or placeholder for another object to control access to it.”

2.代理模式结构与分析

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值