私はシングルトンクラスを持っています。スタティックメソッドを使ってシングルトンのフィールドにアクセス
クラスのメソッドにアクセスするとき、私は2つの可能性の中から選択します。
- 静的としてこれらのメソッドを作成し、それらを呼び出すと、彼らは、例えば、インスタンスに
を取得するインスタンスを取得し、
Class Test{
private int field1;
Test instance;
private Test(){};
private Test getInstance(){
if (instance == null)
instance = new Test();
return instance;
}
public int method1() { return field1;}
public static int method2() {return getInstance().field1;}
}
ここでは他にも書くことができます
int x = Test.getInstance().method1();
int y = Test.method2();
どちらが良いですか? 私は静的メソッドで直接 "インスタンス"を使用し、それがヌルである場合に例外を捕捉し、それをインスタンス化してから再度呼び出す3番目の代替方法について考えることができます。
私は、理論的には、ロット全体を静的にすることができます。 しかし、これは、シリアライゼーションが静的を保存しないので、アクティビティクローズ時に状態を保存するときに問題が発生します。
'method2()'が静的メソッドであるという事実を伝えるので、私は 'Test.method2();'に行きます。 – TheVillageIdiot