设计模式在游戏中的应用--代理模式(四)

本文介绍了代理模式的概念及其应用场景,探讨了如何通过代理模式控制对对象的访问,并解释了为何使用代理模式来增强对象的功能或限制其访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

代理模式的类图如下:


代理模式是个比较有意思的设计模式。因为如果我们只是想限制对另一个对象的函数的调用,我们完全可以用一个接口,让另外一个对象继承这个接口。

代理模式关键的一种关系就是Proxy与RealSubject之间的关联关系。正因为这个关联关系,我们直接可以通过Proxy的对象来访问RealSubject的对象。那么我们何时需要代理模式呢?

我认为第一种当RealSubject是个干净的类的时候,我们可以通过Proxy类在调用RealSubject方法的时候,添加一些额外的逻辑,例如打印log等。

第二种情况是我们不想或者不能把RealSubject提供给别的调用者,因为调用者完全可以通过RealSubject * object = new RealSubject ()来访问RealSubject中的别的函数,他们错误的调用的时候可能引发不可预期的结果,最后烂摊子还得我们自己收拾。

在游戏中有不少代理模式,特别在各种交互的地方。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值