少一个类的效率。
小弟在学习蓝牙对战五子棋时,遇到一个问题不懂,特来问问。这个代码网上很多,相信很多大侠也看过啦,我就简单列一下:
首先介绍下主要用到的八个类:
BTGame :midlet类,控制所有midlet的运行和销毁;
MyCanvas :调用GameWorld.keyPressed()方法处理键盘输入并实例化和绘制GameWorld;
Chess :抽象了棋盘上是否为服务器下子;
GameWorld :抽象了游戏的棋盘和棋子以及通过调用Control类来收发信息;
Control :主要在GameWorld类和Connetion类之间传递坐标值和服务器判断值;
Connetion :根据服务器判断值类启动服务器和客户端并把其棋子坐标传递给Control类;
Server :主要是创建蓝牙服务和连接并等候服务,并负责服务器的信息收发;
Client :主要负责搜索设备和服务,并负责客户端的信息收发。
五子棋首先是由BTGame类运行midlet,启动画布MyCanvas类,再根据启动服务器/客户端的选择再逐次启动GameWorld类、Control类、Connection类和其选择模式的线程,来完成蓝牙通信的初始化以及创建连接和收发信息。MyCanvas类再通过调用GameWorld 类的draw( )来绘制背景、棋盘和棋子。
到此后我发现要经历GameWorld,Control,Connection的过渡收发,才到达服务器/客户端,我发现Control类完全起的是一个传递的作用,就试着将中间的Control类省去,修改GameWorld,Connection直接相联系,之后发现点开始后(打开MyCanvas之后)运行启动非常的慢。我想着电脑都运行这么慢,手机就更不可能了...原来想MyCanvas和GameWorld合并的想法就也又打消了...我有点想不明白,为何少一个类的效率会变低呢?