2012-08-23 2 views
1

Il existe une excellente bibliothèque Android que j'aimerais réutiliser pour une application de bureau.Portage du code Android-SQLite vers un site non-Android SQLite

La seule partie spécifique à Android dans cette bibliothèque est l'utilisation de android.database.sqlite.

Quelle est la meilleure pratique dans de tels cas?

  • Remplacer tous les appels pour utiliser un package SQLite pur Java portable comme SQLJet à la place?
  • Enveloppez some SQLite Java library dans un android.database.sqlite et utilisez la bibliothèque sans aucune modification?
  • Une autre solution intelligente?

Répondre

1

Tout d'abord, cela peut être une surpêche pour votre application.

Ma suggestion est de faire abstraction des appels de base de données à une interface. Pour toutes les parties de votre bibliothèque qui nécessitent SQLite, utilisez la nouvelle interface et implémentez un 'SQLite Database Provider' qui 'étend' l'interface, qui appelle les méthodes SQLite.

Ce que je suggère est d'utiliser 'Dependency Injection' pour injecter les parties de la base de données dans votre bibliothèque. Lorsque vous utilisez la bibliothèque dans une application de bureau, vous pouvez simplement injecter une implémentation différente de l'interface (MySql Provider?) Et vous êtes prêt à partir. Cela vous permettra également d'injecter n'importe quel autre fournisseur de base de données à tout moment, sans modifier à nouveau le code de la bibliothèque principale.

+0

Vous pouvez également utiliser le modèle Repository pour cela, mais vous devrez également injecter le référentiel lors de la phase de démarrage. – Madushan

Questions connexes