1700460944
张三在打怪!
1700460945
1700460946
张三又升了一级!
1700460947
1700460948
结束时间是:2009-8-26 03:40
1700460949
1700460950
我们还是让代练者帮我们打游戏,但是我们既没有创建代理类,也没有实现IGamePlayer接口,这就是动态代理。别急,动态代理可不仅仅就这么多内容,还有更重要的,如果想让游戏登录后发一个信息给我们,防止账号被人盗用嘛,该怎么处理?直接修改被代理类GamePlayer?这不是一个好办法,好办法如代码清单12-24所示。
1700460951
1700460952
代码清单12-24 修正后的动态代理
1700460953
1700460954
public class GamePlayIH implements InvocationHandler{
1700460955
1700460956
//被代理者
1700460957
1700460958
Class cls=null;
1700460959
1700460960
//被代理的实例
1700460961
1700460962
Object obj=null;
1700460963
1700460964
//我要代理谁
1700460965
1700460966
public GamePlayIH(Object_obj){
1700460967
1700460968
this.obj=_obj;
1700460969
1700460970
}
1700460971
1700460972
//调用被代理的方法
1700460973
1700460974
public Object invoke(Object proxy,Method method,Object[]args)
1700460975
1700460976
throws Throwable{
1700460977
1700460978
Object result=method.invoke(this.obj,args);
1700460979
1700460980
//如果是登录方法,则发送信息
1700460981
1700460982
if(method.getName().equalsIgnoreCase(“login”)){
1700460983
1700460984
System.out.println(“有人在用我的账号登录!”);
1700460985
1700460986
}
1700460987
1700460988
return result;
1700460989
1700460990
}
1700460991
1700460992
}
1700460993
[
上一页 ]
[ :1.700460944e+09 ]
[
下一页 ]