單例模式有以下特點: 1、單例類只能有一個實例。 2、單例類必須自己創建自己的唯一實例。 3、單例類必須給所有其他對象提供這一實例。
四點要求:唯一實例,多線程并發訪問,效率性能,懶加載(Lazy Load,在需要的時候才被構造) 1、懶漢模式,線程不安全
public class SingletonKerriganA { /** * 單例對象實例 */ PRivate static SingletonKerriganA instance = null; public static SingletonKerriganA getInstance() { if (instance == null) { instance = new SingletonKerriganA(); } return instance; }}2、懶漢模式,線程安全,但是效率低
public class SingletonKerriganB { /** * 單例對象實例 */ private static SingletonKerriganB instance = null; public synchronized static SingletonKerriganB getInstance() { if (instance == null) { instance = new SingletonKerriganB(); } return instance; }}3、餓漢模式
public class SingletonKerriganE { /** * 單例對象實例 */ private static SingletonKerriganE instance = new SingletonKerriganE(); public static SingletonKerriganE getInstance() { return instance; }}4、靜態內部類。懶漢模式,線程安全,性能好,應用多。
public class SingletonKerriganF { private static class SingletonHolder { /** * 單例對象實例 */ static final SingletonKerriganF INSTANCE = new SingletonKerriganF(); } public static SingletonKerriganF getInstance() { return SingletonHolder.INSTANCE; }}實際開發中,我們應該記?。簺]有最好的單例模式,只有最合適的單例模式。
新聞熱點
疑難解答