将Android-SQLite代码移植到非Android SQLite

时间:2012-08-23 01:32:22

标签: android sqlite portability android-sqlite sqljet

我想为桌面应用程序重用一个很棒的Android库。

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

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

  • 替换所有调用以使用可移植的纯Java SQLite包,例如SQLJet
  • android.database.sqlite中换行some SQLite Java library并使用该库而不做任何修改?
  • 任何其他聪明的解决方案?

1 个答案:

答案 0 :(得分:1)

首先,这可能对你的申请来说太过分了。

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

我建议使用'依赖注入'将数据库部分注入您的库。

因此,当您在桌面应用程序中使用该库时,您可以简单地注入一个不同的接口实现(MySql Provider?),并且您已准备就绪。

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