2.2 类设计
对系统主要类的设计说明如下。
2.2.1 主MIDlet类
主MIDlet类由MobileLibraryMidlet.java文件实现。该文件中定义了MobileLibraryMidlet类,该类派生自MIDlet类,同时还实现了CommandListener接口。该类主要继承了MIDlet类的startApp()、pauseApp()、destroyApp(boolean unconditional)和一些其他自定义的方法。其中startApp()是本程序的启动方法,它负责启动应用程序。该方法主要有两个分支,如果是由PUSH注册机制唤醒应用程序,就显示提醒用户还书的界面并且播放提示背景音乐,否则程序就执行init()方法正常启动。判断程序是否由PUSH注册机制唤醒的方法是通过读取REMInd对象中存储的注册时间与当前时间进行比较,如果两个时间相等说明是由PUSH机制唤醒的,否则是程序正常启动。
2.2.2 主界面类
主界面作用由MainUI类来实现。它实现了SVGEventListener和Runnable两个接口,这两个接口主要是实现SVG的交互性。本类当中有5个SVGAnimationElement类型的数组变量,这些数组保存的是SVG中的各种动画元素,例如颜色、位置的变化等,这5个数组分别用于存储选择器动画元素的marker数组、保存当动画元素被选择时颜色的selectedColor数组、保存动画元素未被选择时颜色的unSelectedColor数组、保存动画元素被选择的位置的selectedPosition数组以及保存动画元素未被选择的位置的数组unSelectedPosition。
2.2.3 界面导航类
系统的界面导航由UIController类实现,其主要成员函数如下。
(1) goBack()
goBack()方法主要实现界面导航中返回上一个界面的功能,其过程是首先从栈顶弹出当前的显示控件,然后获得当前的栈顶元素,最后通过midlet回调显示上一个界面,从而实现返回上一个界面的功能。
(2) forward(Displayable display)
forward(Displayable display)方法实现进入到下一个显示屏幕的功能。其过程是首先将要显示的控件压入栈中,然后通过midlet回调setCurrent(display)显示该控件。当调用goBack()返回时仍回到原先的屏幕。
(3) repalce(Displayable next)
联网时经常会有一个暂时等待的界面,然后再进入所需要的界面。这时若要返回,应该是返回到联网之前的界面而不是返回到等待界面,因此当从等待界面转到联网之后的界面时,不应该调用forward(Displayable display)方法,应使用repalce方法,抛弃等待屏幕,从而实现联网后的屏幕可以直接goBack到联网之前的屏幕。
2.2.4 HTTP通信类
一个完整的HTTP连接为:用户通过某个命令发起连接请求,然后系统给出一个等待屏幕提示正在连接,当连接正常结束后,前进到下一个屏幕并处理下载的数据。如果连接过程出现异常,将提示用户并返回到前一个屏幕。用户在等待过程中能够随时取消并返回前一个屏幕。HTTP通信类是系统中很重要的一个类,它负责客户端和服务器端的通信。双方的通信采用前面介绍的通信协议。HTTP通信类由HttpHandler类实现,该类继承了Thread类并重写了Thread类的run()方法。run()方法是HTTP通信类的核心方法,实现通信功能。本方法的大致思想是与Web服务器建立连接,发送请求动作信息,收到服务器的响应后根据响应码分配给相应的处理类对来自服务器的响应数据进行解析。
系统采用J2ME作为客户端的开发基础,通过SVG、PUSH等技术丰富系统功能并美化系统界面。服务器端使用成熟的Servlet技术实现。同时系统在开发过程中使用类似于MVC模式,实现了符合系统的要求。
参考文献
[1] Chen Xiaomei,Guan Xin. The value of mobile phone library in information broadcasting[J]. Information Science,2006(11).
[2] Tung Weifeng, Yuan Soetysr, Lin Binshan. M-Library: a mobile service in online WebPAC[J].International Journal of Mobile Communications 2007,5(5):487-507.
[3] Nor Shahriza Abdul Karim, Siti Hawa Darus, Ramlah Hussin.Mobile phone applications in academic library services:a students’ feedback survey[D].Malaysia:International Islamic University,2006.
[4] 陆东林,宾晟,国刚.J2ME开发技术原理与实践教程[M].北京:电子工业出版社,2008.
[5] 郝玉龙,李向前.J2ME移动应用开发[M].北京:清华大学出版社;北京交通大学出版社,2006.
[6] 施铮.J2ME无线移动游戏开发[M].北京:人民邮电出版社,2006.