Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建依赖类的单例实例?_Java_Design Patterns_Singleton - Fatal编程技术网

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

Java 如何创建依赖类的单例实例?,java,design-patterns,singleton,Java,Design Patterns,Singleton,我对模式和使用模式有点陌生 我想配置一个依赖类的对象,比如说a。一次,然后在我的应用程序中使用它。我试着在它上面创建一个单例包装器类,但失败得很惨。我试过这样的方法: public class B { public static A a = new A(); public static A getInstance() { return a; } private B() { a.configure(); } } 我认为调用B.getInstance

我对模式和使用模式有点陌生

我想配置一个依赖类的对象,比如说a。一次,然后在我的应用程序中使用它。我试着在它上面创建一个单例包装器类,但失败得很惨。我试过这样的方法:

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

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

我认为调用B.getInstance不会在这里配置对象。我想在这里配置A的实例一次,然后在任何地方都使用它。

基本上你的单例类是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();
   }
}

但这并没有给我一个权利的例子?我想配置类A并获取其实例。如果我的问题不太清楚,那我就不好了。然后在B中添加一个方法,比如getA{return\u a;}好的,这样看起来很有效。。。谢谢@Ash,希望这对其他人有用。public类B{private static B{u instance;private static A A A=new A;private static void init{if{u instance==null{{{u instance=new Ba;}}}public static A getInstance{u instance.init;返回A;}private B A{u A=A;_A.configure;}