SingletonDesignPattern

SingletonDesignPattern

我一直在网上找到my question on service loaders的答案,并遇到了使用单例设计模式的解决方案。

我根据该模式实现了程序,并给了我预期的输出。

但是,我仍然有一些要澄清单例设计模式的要点。

为什么在设计模式时使用private static变量和静态方法?

这是我根据模式设计的课程。

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方法是因为我们没有在任何其他类中创建此类的实例。

除了上面提到的以外,任何说明使用static private变量和static方法的目的的解释都应得到赞赏。

最佳答案

单例模式的目的是仅创建该类的一个实例,并在各处使用它。
它是私有的,因为我们不希望多次创建它。
它是静态的,因为我们想在所有地方使用相同的创建实例。

07-26 06:58