设计模式(五)代理模式

代理模式,也叫委托模式。用代理商隔开用户与目标。用户不直接访问目标,而是访问代理,再委托代理完成相关操作。
代理者可以再操作前后进行额外的处理,比如访问计数,批量创建,信息汇总等。

为其他对象提供一种代理以控制对这个对象的访问。

在这里插入图片描述

按照使用目的可以将代理划分为以下几种。

■ 远程(Remote)代理:为一个位于不同的地址空间的对象提供一个局部代表对象。这个不同的地址空间可以是在本机器中,也可以在另一台机器中。

■ 虚拟(Virtual)代理:有时需要创建一些消耗较多资源的对象,可以首先创建代理对象,而将真实对象的创建延迟。

■ 保护(Protect or Access)代理:控制对一个对象的访问,如果需要,可以给不同的用户提供不同级别的使用权限。

■ 缓存(Cache)代理:为某一个目标操作的结果提供临时的存储空间,以便多个客户端可以共享这些结果。

■ 同步(Synchronization)代理:使几个用户能够同时使用一个对象而没有冲突。

■ 智能引用(Smart Reference)代理:当一个对象被引用时,提供一些额外的操作,例如,记录访问的流量和次数等。

注意在所有种类的代理模式中,虚拟代理、远程代理、智能引用代理和保护代理是最为常见的代理模式。

比如:
消费者并不会直接去工厂买商品,而是去商店。
工厂发货不是直接发给消费者,而是发给代理商。
售后也不是消费者直接联系工厂维修车间,而是联系商店或者专门的售后部。
如果,去除一切中间环节,个例上看起来是很高效,然而整体上却是严重低效的。想象一下,如果所有的快递公司,都是一对一单独送达,不进行分拣和中转,会是怎样的场景?

当然,像瓜子二手车不让中间商赚差价的做法,实际是可以打假的。它的意思其实是:

我不让其他中间商赚差价,你们把差价让给我来赚!

关于对象保护和使用权限等级什么的,非专业人士可能不太理解。意思是只有被授权的用户才能访问到更多的信息,不然只有少量的信息,甚至没有任何信息。
比如银行和政府的个人信息数据,是需要授权的。如果谁都可以访问到自己配偶的聊天记录和开房信息什么的,那离婚率会太高,影响社会稳定。
所以,为了世界和平,我们也可以使用代理。配偶或许可以知道这个月的话费,流量,开销。但是只有本人才能知道具体和谁联系了,聊天记录的内容是啥,哪一天在哪个酒店付了房费等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值