然而,这些不同点并不意味着:一个应用程序不得不完全重写以便运行在所有的设备上。不管我们的应用程序使用等Form、TextField和List高级组件,还是使用Canvas自己绘制和处理事件(或者同时使用这些技术),我们仍然能够做许多工作使得我们的MIDlet可移植。
最后,核心应用程序应当在不同设备上均保持不变,任何不同都应该是由于不同的用户界面引起。例如,图形操作可能由于较小的屏幕而改变,或者根据不同的用户输入而创建不同的菜单。确保核心应用程序保持不变需要将其从UI中分离,这需要基于一个恰当的模式。
开发者除了要创建一个可移植的架构,还要满足不同设备的性能。这需要知道设备支持哪些API并相应更改MIDlet。
当讨论编程模型时,我们还将讨论Symbian系统设备的不同之处,并看到这将影响到应用程序的实现。
6.2 设计模式
已经有许多类型的结构设计可以在面向对象的编程语言如Java中采用,这有助于代码的可移植性。虽然我们不打算讨论设计理论的细节,通常在MIDlet开发中考虑重要的概念还是值得的。传统上,这些设计都是与桌面应用程序或基于服务器的应用程序开发关联的;然而,由于内存和处理器能力的约束对无线应用程序越来越小,这些模式变得愈加重要。下面的章节将介绍两种有用的设计模式。