我正在设计一个Android应用程序,我有几个问题想听听你的意见。
现在,我正在考虑的架构如下:

由于很可能在不久的将来,这个基于Java的Android应用程序版本可能会为Win/Mac/Linux开发,所以我试图将Business与Android特定的API区别开来。
基本上,Business将需要使用嵌入式SQLite DB,以及使用BT适配器并通过Wifi访问互联网--例如,这可以使用两个专用的安卓库来完成。问题是,我希望Business只是一个“纯”Java库,而不是基于Android项目。根据这一架构,Android应用程序将有一个配置“模块”负责设置、配置和启动两个基于Android的库,这是可行的。
在你看来,目前选择的架构有意义吗?
您对此应用程序的建议是:
application.
提前感谢您的时间和意见。
发布于 2012-01-25 12:16:59
我问过一个similar question --我的目标是为安卓、黑莓和J2ME开发一个应用程序。我是通过将特定于平台的组件(UI、DB access、Network )与核心业务逻辑分开实现的。核心BL是作为一个普通的JAR库开发的,我将其分发给Android和BB应用程序。
虽然成功了,但我对解决方案并不满意。正如我在一个answer here中解释的那样(甚至就像我上面提到的第一个问题的答案一样),由于BB/J2ME没有跟上Java版本,我遇到了实际的困难。我的Android实现最终使用了大量的“遗留”代码(例如,没有泛型)。
尽管如此,既然您的下一个目标是桌面而不是BB或J2ME,那么您不仅可以在安卓和桌面Java应用程序之间保持您的设计通用,而且还可以共享实现。
关于您关于抽象的问题,我建议采用基于接口的业务逻辑和DB逻辑方法。我上述答覆第一段的链接,显示了如何做到这一点的一个简单例子,但我很乐意提供更多细节。
https://stackoverflow.com/questions/9002305
复制相似问题