代理模式,个人认为用的比较多的实现方式为句柄和伪代理。
一、句柄
所谓句柄,就是可以用一个句柄类对象去操作一个或多个对象,而不用关心操作对象的实现。我们可能对遇到这种情况:对于操作的每种情形,都具有相似或相同的接口,但接口的具体操作不相同,而对于类用户来说,并不想知道你的每种实现类,只想用一个对象和一组接口进行操作。这个时候,比较好的解决方法是句柄。
实例:对一个游戏来说,可能有几种不同的战局模式:正式战PVP、练习战PVP、PVE等。这些战斗类型结算都具有相同的接口,只是具体保存的数据或其他处理不同。而对于战局来说,我只想在结算时调用接口,不想关心这是什么战斗类型。