1

有一个很棒的 Android 库,我想将它重用于桌面应用程序。

这个库中唯一特定于 Android 的部分是使用android.database.sqlite

在这种情况下,最佳做法是什么?

  • 替换所有调用以使用像SQLJet这样的可移植纯 Java SQLite 包?
  • 将一些 SQLite Java 库包装在 a 中android.database.sqlite并在不进行任何修改的情况下使用该库?
  • 还有其他聪明的解决方案吗?
4

1 回答 1

1

首先,这对您的应用程序来说可能是多余的。

我的建议是将数据库调用抽象为接口。因此,对于需要 SQLite 的库的所有部分,请使用新接口,并实现一个“扩展”接口的“SQLite 数据库提供程序”,该接口调用 SQLite 方法。

我的建议是使用“依赖注入”将数据库部分注入到您的库中。

因此,当您在桌面应用程序中使用该库时,您可以简单地注入接口的不同实现(MySql 提供程序?),然后您就可以开始了。

这也将允许您随时注入任何其他数据库提供程序,而无需再次更改核心库代码。

于 2012-08-23T01:59:39.947 回答