2017-03-08 4 views
0

私はパターンが新しく、それらを使用しています。依存関係クラスのシングルトンインスタンスを作成するにはどうすればよいですか?

依存クラス(例えばA.)のオブジェクトを一度構成し、それを私のアプリケーションから使いたいと思っています。私はその上にシングルトンラッパークラスを作ろうとしましたが、悲惨に失敗しました。私はB.getInstance()を呼び出すと、ここでオブジェクトを設定しないだろうと思い

public class B { 
    public static A a = new A(); 
    public static A getInstance() { 
     return a; 
    } 

    private B() { 
    a.configure(); 
    } 
} 

:私のようなものを試してみました。私がここで望むのは、Aのインスタンスを一度構成して、どこにでも使用することです。

答えて

1

基本的にあなたのシングルトンクラスはBですか?あなたのサンプルコードでは、内部のAのためのシングルトンパターンを使用していません。

私の理解から、あなたはそのような何かのために行く必要があります。

public class B { 
    private static B _instance; 
    public static B getInstance() { 
     if (_instance == null) { 
      _instance = new B(new A()); 
     } 
     return _instance; 
    } 

    private A _a; 

    private B (A a) { 
     _a = a; 
     _a.configure(); 
    } 
} 
+0

しかしこのdoesntのは私に右のインスタンスを与えますか?クラスAを設定してそのインスタンスを取得したい。私の質問で私があまりにも明確でなかったら私の悪い。 –

+0

次にgetA(){return _a;}のようにBにメソッドを追加します。 } –

+0

okこれはうまくいくようです...ありがとう@Ash、これが他の人には便利だと思っています。 パブリッククラスB { private static B _instance; プライベートスタティックA a = new A(); プライベート静的void init(){ if(_instance == null){ _instance = new B(a); } } public static A getInstance(){ \t _instance.init(); \t返品a; } プライベートB(A a){ _a = a; _a.configure(); } } –

関連する問題