1700460386
“不行呀衰哥,我这几天很忙呀,你找我的经纪人吧……”
1700460387
1700460388
郁闷了吧,你是想直接绕过她的代理,谁知道返回的还是她的代理,这就是强制代理,你可以不用知道代理存在,但是你的所作所为还是需要代理为你提供。我们把上面的例子稍作修改就可以完成,如图12-5所示。
1700460389
1700460390
1700460391
1700460392
1700460393
图12-5 强制代理类图
1700460394
1700460395
在接口上增加了一个getProxy方法,真实角色GamePlayer可以指定一个自己的代理,除了代理外谁都不能访问。我们来看代码,先看IGamePlayer接口,如代码清单12-13所示。
1700460396
1700460397
代码清单12-13 强制代理的接口类
1700460398
1700460399
public interface IGamePlayer{
1700460400
1700460401
//登录游戏
1700460402
1700460403
public void login(String user,String password);
1700460404
1700460405
//杀怪,这是网络游戏的主要特色
1700460406
1700460407
public void killBoss();
1700460408
1700460409
//升级
1700460410
1700460411
public void upgrade();
1700460412
1700460413
//每个人都可以找一下自己的代理
1700460414
1700460415
public IGamePlayer getProxy();
1700460416
1700460417
}
1700460418
1700460419
仅仅增加了一个getProxy方法,指定要访问自己必须通过哪个代理,实现类也要做适当的修改,先看真实角色GamePlayer,如代码清单12-14所示。
1700460420
1700460421
代码清单12-14 强制代理的真实角色
1700460422
1700460423
public class GamePlayer implements IGamePlayer{
1700460424
1700460425
private String name=””;
1700460426
1700460427
//我的代理是谁
1700460428
1700460429
private IGamePlayer proxy=null;
1700460430
1700460431
public GamePlayer(String_name){
1700460432
1700460433
this.name=_name;
1700460434
1700460435
}
[
上一页 ]
[ :1.700460386e+09 ]
[
下一页 ]