Activity を拡張するメイン クラスとは別のクラスにある SQLite データベースがあります。
データベースのセットアップには 2 つの方法があることに気付きました。1 つの方法は、クラス内またはネストされたサブクラスとして、メインの Activity クラス内に配置することです。2 番目の方法は、別のクラスに配置することです。
別のクラスの方が見栄えは良いですが、欠点が 1 つあります。何かをするたびに、メイン アクティビティ クラスでそのインスタンスを作成する必要があります。Android でのオブジェクトのインスタンス化はコストがかかるため、避けるべきであると読みました。
それにもかかわらず、データベースを別のクラスとして作成したいと思います。オブジェクトをインスタンス化するコストは、データベースを同じクラスに配置するのに十分なコストですか?
SQLite データベースの別のクラスの例: 不完全な疑似コード
public class SQLiteDB {
private static class DbHelper extends SQLiteOpenHelper{
// db helper methods
}
// methods for DB, like get, set, and others
public void openDatabase(){ }
public void closeDatabse(){ }
public void insertRecord(String record){ }
}
メイン アクティビティでの使用例: incompete psudo-code
public class Main extends Activity{
// every time I want to use it I must instantiate an object for the database class
// many instances of SQLiteDB object created, garbage collector works hard
SQLiteDB mDatabase = new SQLiteDB();
openDatabase();
insertRecord("insert this");
closeDatabase();
}