具有 JAVA 服务加载器的单例设计模式

Singleton Design Pattern with JAVA service loaders

我一直在网上寻找 的答案,并发现了一个使用单例设计模式的解决方案。

我根据那个模式实现了我的程序,它给了我预期的输出。

但是关于单例设计模式,我还有一些要澄清的地方。

为什么我们在设计模式时使用privatestatic变量和静态方法?

这是我按照图样设计的class

public class SingletonDesignPattern {

      private static SingletonDesignPattern singletonDesignPattern;
      private ServiceLoader<Cipher> serviceLoader;

      private SingletonDesignPattern() {

        serviceLoader = ServiceLoader.load(Cipher.class);

      }

      public static SingletonDesignPattern getInstance() {

        if (singletonDesignPattern == null)
          singletonDesignPattern = new SingletonDesignPattern();

        return singletonDesignPattern;

      }
}

我发现我们使用了 static 方法,因为我们没有在任何其他 class 中创建此 class 的实例。

任何说明使用 static private 变量和 static 方法的目的的解释,除了我上面提到的那个,我们都很感激。

单例模式的目的是只创建一个实例 class 并在任何地方使用它。 它是私有的,因为我们不希望它被多次创建。 它是静态的,因为我们想在任何地方都使用相同的创建实例。