1700460670
1700460671
//获得指定的代理
1700460672
1700460673
IGamePlayer proxy=player.getProxy();
1700460674
1700460675
//开始打游戏,记下时间戳
1700460676
1700460677
System.out.println(“开始时间是:2009-8-25 10
:45”);
1700460678
1700460679
proxy.login(“zhangSan”,“password”);
1700460680
1700460681
//开始杀怪
1700460682
1700460683
proxy.killBoss();
1700460684
1700460685
//升级
1700460686
1700460687
proxy.upgrade();
1700460688
1700460689
//记录结束游戏时间
1700460690
1700460691
System.out.println(“结束时间是:2009-8-26 03
:40”);
1700460692
1700460693
}
1700460694
1700460695
}
1700460696
1700460697
运行结果如下:
1700460698
1700460699
开始时间是:2009-8-25 10:45
1700460700
1700460701
登录名为zhangSan的用户张三登录成功!
1700460702
1700460703
张三在打怪!
1700460704
1700460705
张三又升了一级!
1700460706
1700460707
结束时间是:2009-8-26 03:40
1700460708
1700460709
OK,可以正常访问代理了。强制代理的概念就是要从真实角色查找到代理角色,不允许直接访问真实角色。高层模块只要调用getProxy就可以访问真实角色的所有方法,它根本就不需要产生一个代理出来,代理的管理已经由真实角色自己完成。
1700460710
1700460711
1700460712
1700460713
1700460714
设计模式之禅 12.4.3 代理是有个性的
1700460715
1700460716
一个类可以实现多个接口,完成不同任务的整合。也就是说代理类不仅仅可以实现主题接口,也可以实现其他接口完成不同的任务,而且代理的目的是在目标对象方法的基础上作增强,这种增强的本质通常就是对目标对象的方法进行拦截和过滤。例如游戏代理是需要收费的,升一级需要5元钱,这个计算功能就是代理类的个性,它应该在代理的接口中定义,如图12-6所示。
1700460717
1700460718
1700460719
[
上一页 ]
[ :1.70046067e+09 ]
[
下一页 ]