我一直在网上找到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
方法的目的的解释都应得到赞赏。 最佳答案
单例模式的目的是仅创建该类的一个实例,并在各处使用它。
它是私有的,因为我们不希望多次创建它。
它是静态的,因为我们想在所有地方使用相同的创建实例。