代理模式

代理模式是为其他对象提供一种代理以控制对这个对象的访问,代理对象可以在实际对象与客户端中间起到中介的作用。

组成:

抽象角色:通过接口或抽象类声明真实角色实现的业务方法。

代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。

真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。

作用:

真实角色只需要关心自己应该实现的功能,不需要关心其他非本职责的事务;

代理对象可以在实际对象与客户端中间起到中介的作用,同时保护了真实角色;

可以在代理角色中添加功能,而不需要更改真实角色本身的代码,符合开放-封闭原则。

根据不同的使用情况,可以将代理模式分为以下4类:

1. 远程代理:是为一个对象在不同的地址空间提供局部代表,用于隐藏一个对象存在于不同地址空间的事实;

2. 虚拟代理:是根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的对象,以达到性能的最优化;

如我们在使用浏览器加载网页时,即使网页有很多图片,也可以很快的打开网页,而图片部分可能只是用空白区域块代替。那些未打开的空白图片框,就是使用虚拟代理来代表了真实的图片。

3. 安全代理:用来控制真实对象访问时的权限;

4. 只能指引:指当调用真实对象时,代理处理另外一些事情。比如计算真实对象的引用此时,当引用次数为0时自动释放。


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值