我正在设计Android应用程序,我有几个问题我希望得到您的意见。
现在,我想到的架构如下:
由于很可能在不久的将来可能会为Win / Mac / Linux开发基于Java的Android应用程序版本,因此我试图将业务逻辑与Android特定API保持一致。
基本上,业务逻辑需要使用嵌入式SQLite DB以及使用BT适配器并通过Wifi访问Internet,例如,这可以使用两个专用的Android库来完成。问题是我希望Business Logic只是一个“纯粹的”Java库,而不是建立在Android项目之上。根据这种架构是否可行,知道Android应用程序可能有一个配置“模块”负责设置和配置,并在必要时启动两个基于Android的库。
目前选择的架构在您眼中是否有意义?
您对此申请的建议是什么:
提前感谢您的时间和意见。
答案 0 :(得分:3)
我问过similar question - 我的目标是为Android,Blackberry和J2ME开发应用程序。我通过与核心业务逻辑分开实现特定于平台的组件(UI,数据库访问,网络访问)来实现这一点。核心BL是作为我分发给Android和BB应用程序的通用JAR库开发的。
虽然它有效,但我对解决方案并不满意。正如我在answer here中所解释的那样(以及上面提到的第一个问题的答案),我遇到了实际困难,因为BB / J2ME没有跟上Java发布的步伐。我的Android实现最终使用了大量“遗留”代码(例如,没有泛型)。
话虽如此,由于您的下一个目标是使用桌面而不是BB或J2ME,您可能不仅可以在Android和桌面Java应用程序之间保持设计,还可以共享实现。
关于抽象问题,我建议使用基于接口的业务逻辑和数据库逻辑方法。我上面回答的第一段中的链接显示了如何实现这一目标的简单示例,但我很乐意提供更多详细信息。