具有 JAVA 服务加载器的单例设计模式
Singleton Design Pattern with JAVA service loaders
我一直在网上寻找 的答案,并发现了一个使用单例设计模式的解决方案。
我根据那个模式实现了我的程序,它给了我预期的输出。
但是关于单例设计模式,我还有一些要澄清的地方。
为什么我们在设计模式时使用private
static
变量和静态方法?
这是我按照图样设计的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 并在任何地方使用它。
它是私有的,因为我们不希望它被多次创建。
它是静态的,因为我们想在任何地方都使用相同的创建实例。
我一直在网上寻找
我根据那个模式实现了我的程序,它给了我预期的输出。
但是关于单例设计模式,我还有一些要澄清的地方。
为什么我们在设计模式时使用private
static
变量和静态方法?
这是我按照图样设计的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 并在任何地方使用它。 它是私有的,因为我们不希望它被多次创建。 它是静态的,因为我们想在任何地方都使用相同的创建实例。