2017-03-08 55 views
0

我對模式和使用它們有點新。如何創建依賴類的單例實例?

我想配置一個依賴類的對象(比如A.)一次,並通過我的應用程序使用它。我嘗試在它上面創建一個單例包裝類,但是失敗了。我試過類似的東西:

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

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

我想調用B.getInstance()不會在這裏配置對象。我想在這裏配置A的實例一次並在任何地方使用。

回答

1

基本上你的單身人士班是乙對嗎?在你的示例代碼中,你使用內部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

但這並不能給我的右邊的實例?我想配置類A並獲取它的實例。我的不好,如果我不太清楚我的問題。 –

+0

然後像B一樣添加一個方法getA(){return _a; } –

+0

好吧,所以這似乎是工作......謝謝@Ash,希望這對其他人有用。 public class B {private static B _instance; private static A a = new A();如果(_instance == null){ _instance = new B(a);} {private static void init(){ if(_instance == null){ _instance = new B } } public static A getInstance(){ \t _instance.init(); \t return a; } private B(A a){a} a = a; _a.configure(); } } –