本文主要是介绍单例模式(Singleton)的两种实现方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第一种方式:package com.test.util;
public class SingletonTest {
public void main(String[] args) {
Singleton singleton = Singleton.getInstance();
Singleton singleton2 = Singleton.getInstance();
System.out.println(singleton == singleton2);
}
}
class Singleton {
private static Singleton singleton = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return singleton;
}
}
第二种实现方式:
package com.spring;
public class SingletonTest2 {
public void main(String[] args) {
Singleton singleton = Singleton.getInstance();
Singleton singleton2 = Singleton.getInstance();
System.out.println(singleton == singleton2);
}
}
class Singleton {
private static Singleton singleton;
private Singleton() {
}
public static Singleton getInstance() {
if (singleton == null) {
singleton = new Singleton();
}
return singleton;
}
}
相比较而言,第一种实现方式更好更安全一些,第二种实现方式在多线程环境下有时会出现多例的错误!
这篇关于单例模式(Singleton)的两种实现方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!