读书人

单例模式(Singleton)的两种兑现方式

发布时间: 2013-09-06 10:17:17 作者: rapoo

单例模式(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;}}



相比较而言,第一种实现方式更好更安全一些,第二种实现方式在多线程环境下有时会出现多例的错误!

读书人网 >编程

热点推荐