Java设计模式之代理模式

代理模式是一种设计模式,通过引入代理对象作为中介,控制对真实对象的访问。例如,生活中的代理商和秘书角色。在Java中,代理模式常用于控制访问、解耦以及在请求处理中提供额外功能,如身份验证。它包括抽象主题、实际主题和代理三个角色,可以在不修改原有代码的情况下,增加新的功能或控制访问。虽然代理模式可能导致请求处理速度变慢,但在需要远程访问、身份验证和缓存等场景下,它提供了有效的解决方案。
摘要由CSDN通过智能技术生成

代理模式

什么是代理模式?

举个生活中的例子:代理商。我们生活中买的许多物品都是通过代理商那里购买的,比如旅行社,代理旅行、机票等业务,代理出口商品。代理商并不产生这些产品,他们是从厂家拿货,所以虽然是通过代理商那里买到了产品,实际物品还是属于厂家那里。代理商作为一种中间层,可以为消费者带来许多遍历,消费者不需要购买物品的时候跑到生产厂家。

再举个例子:老板与秘书。老板一般都很忙,如果一个客户相要见老板,打电话给老板,接电话的都是老板的秘书,然后由秘书再向老板转告,老板如果档期已满,则秘书直接告诉客户,今天无法见面。这里秘书也起到了一个代理的作用,秘书作为客户和老板之间的中间层,减轻了老板的工作量,或者阻挡了一些不想见的客户。

代理模式与上面两个例子基本类似。比如客户端和服务器端的通信(类比客户与老板间),代理作为中间层,当客户端请求服务器时,则会先经过代理,然后由代理去请求服务器,而此时客户端并不知道访问的是代理。这样的好处就是,减轻了服务器的压力,当请求大量资源,比如图片,或者服务器要处理很长时间时,通过代理就可以先返回一部分图片给客户端,而不是让用户一直等待。

代理可以控制对实际对象的访问。比如客户端向服务器端请求时,可能需要验证客户端的身份,那么代理就可以起这个作用,验证客户端的身份,控制客户端对服务器的请求。

代理模式的结构

  1. 抽象主题(Subject):它是一个接口,代理和实际主题(对象࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值