La création du modèle de données de la classe pour la manipulation de la base de données

Je viens de commencer à travailler sur une application de base de données quand j'ai réalisé que je devrais mettre en œuvre MVC motif que l'application est assez complexe et implique un certain nombre d'opérations de base de données.
En ce qui concerne cela, j'ai décidé de créer un model class pour la manipulation des opérations de base de données. Cette classe aura toutes les méthodes qui va me rendre les données après l'exécution de Sqlite commande(Sélectionnez par exemple) OU sera simplement exécuter le SQLite commande(Supprimer par exemple). Mais ce que je veux, c'est de séparer cette classe de Database Adapter classe, où je ouvrir, de créer et de fermer ma base de données.
Permettez-moi de mettre mon concept dans le code :

public class DataModel
{
/*

Private members

*/

// Method to Select data from Student table
public ArrayList<String> FetchStudents (parameter 1)
{
private ArrayList<String> arrStudent;


DatabaseAdapter objDB= new DatabaseAdapter();
objDB.open();  
/*
Some code
*/
objDB.close();


return arrStudent
}

//Method to delete record from Student table
public DeleteStudent(parameter 1)
{
DatabaseAdapter objDB= new DatabaseAdapter();
objDB.open();
//Some code
objDB.close();
}

/*

Rest of methods

*/
}  

//DatabaseAdapterClass

private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
/**
* onCreate method is called for the 1st time when database doesn't exists.
*/
@Override
public void onCreate(SQLiteDatabase db) {
Log.i(TAG, "Creating DataBase: " + CREATE_STUDENT_TABLE);
db.execSQL(CREATE_STUDENT_TABLE);
}
/**
* onUpgrade method is called when database version changes.
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                        + newVersion);
}
}  

Question:
Ce que je veux poser est-ce la bonne approche de mise en œuvre? Est-il bien si créer une catégorie distincte pour les de la base de données des méthodes? Quelles sont les limites ou les questions les gars, vous pensez peut-difficulté à moi plus tard? Aussi, est-il une meilleure façon de mettre en œuvre le concept ci-dessus?

Grâce
Pierre

OriginalL'auteur | 2011-08-03