如何创建依赖类的单例实例?

问题描述:

我对模式和使用它们有点新。如何创建依赖类的单例实例?

我想配置一个依赖类的对象(比如A.)一次,并通过我的应用程序使用它。我尝试在它上面创建一个单例包装类,但是失败了。我试过类似的东西:

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

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

我想调用B.getInstance()不会在这里配置对象。我想在这里配置A的实例一次并在任何地方使用。

基本上你的单身人士班是乙对吗?在你的示例代码中,你使用内部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(); } } –