Android/SQLite droit d'ouvrir/fermer la db?

Je suis un peu nouveau pour la POO donc je veux savoir si im faire les choses correctement. Pour la communication avec la base de données, j'ai créé une classe SQLiteHelper sorcière n'tous les trucs habituels (onCreate, onUpdate) et aussi ouvre et ferme la connexion.

Ici, c'est la classe, au moment où il vient sur la table, mais d'autres seront ajoutées:

public class SQLiteHelper extends SQLiteOpenHelper{
    public static final String DATABASE_NAME = "notebook";
    public static final int DATABASE_VERSION = 2;

    public static final String TABLE_LIST = "list";
    public static final String TABLE_LIST_ID = "_id";
    public static final String TABLE_LIST_NAME = "name";

    public SQLiteDatabase db;

    public SQLiteHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("create table " + TABLE_LIST + "(" + TABLE_LIST_ID
                + " integer primary key autoincrement, " + TABLE_LIST_NAME
                + " text not null);");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_LIST);
        onCreate(db);
    }

    public void open(){
        db = getWritableDatabase();
    }

    public void close(){
        db.close();
    }
}

Et à côté de chaque table, je vais créer une nouvelle classe de la sorcière s'étend classe précédente andd où je fais toutes les opérations relatives au tableau.
Par exemple ListSQL:

public class ListSQL extends SQLiteHelper {

    public ListSQL(Context context) {
        super(context);
    }

    public void delete(int id) {
        open();
        db.delete(TABLE_LIST, TABLE_LIST_ID + " = " + id, null);
        close();
    }

}

Ma question est qu'en programmation orientée objet, est-ce la bonne façon de faire les choses? Espesially l'utilisation d'ouvrir/fermer les méthodes et les db et les variables de TABLE en ListSQL paraître un peu étrange pour moi?

InformationsquelleAutor user1985273 | 2013-01-22