Mi sto bagnando i piedi con lo sviluppo di app Android e mi sto legando per trovare un buon modo per gestire le interazioni tra database su più oggetti simili. Il mio obiettivo era avere una struttura del tipo:
public abstract class DatabaseObject{
public static abstract String getTableName();
public static abstract SQLiteDatabase getDB();
public static void dropTable(){
getDB().execSQL("DROP TABLE IF EXISTS " + getTableName());
}
}
public class Book extends DatabaseObject{
public static final String TABLE_NAME = "book";
private String author;
private static SQLiteDatabase _db;
public static setDB(SQLiteDatabase db){
_db = db;
}
@Override
public static String getTableName(){
return TABLE_NAME;
}
@Override
public static SQLiteDatabase getDB(){
return _db;
}
public String getAuthor(){
return author;
}
public void getAuthor(String auth){
author = auth;
}
}
Ultimamente ho lavorato su un progetto che utilizza Hibernate, quindi sono abituato ad avere una classe che può essere utilizzata in tutta l'applicazione e contiene anche la possibilità di mantenere i suoi dati nel database. Sfortunatamente, "l'abstract statico" non è permesso in Java, quindi non funzionerebbe.
Il mio piano attuale è di avere ognuna delle classi come "Book" che ho intenzione di usare implementare un'interfaccia e che una classe esterna gestisca le comuni interazioni db invece della classe antenato.
C'è un modo migliore per realizzare ciò che sto cercando di fare?