设计模式:单例模式之饿汉式
生活随笔
收集整理的這篇文章主要介紹了
设计模式:单例模式之饿汉式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1).餓漢式(靜態常量)
? ? ?步驟如下:
? ? ? ?①構造器私有化
? ? ? ?②類的內部創建對象
? ? ? ?③向外部暴露一個靜態的公共方法
? ? 優點: ?這種寫法比較簡單,就是在類加載的時候就完成實例化,避免了線程同步問題。
public class SingletonTest01 {public static void main(String[] args){Singleton1 s1 = Singleton1.getSingleton1();Singleton1 s2 = Singleton1.getSingleton1();// s1, s2是同一個實例System.out.println(s1 == s2);System.out.println(s1.hashCode()+" "+s2.hashCode());} }// 餓漢式(靜態變量) class Singleton1{// 構造器私有化,外部不能newprivate Singleton1(){}// 本類內部創建對象實例private final static Singleton1 instance = new Singleton1();// 向外部暴露一個靜態的公共方法public static Singleton1 getSingleton1(){return instance;} }? ? ??
2).餓漢式(靜態代碼塊)
public class SingletonTest02 {public static void main(String[] args){Singleton1 s1 = Singleton1.getSingleton1();Singleton1 s2 = Singleton1.getSingleton1();// s1, s2是同一個實例System.out.println(s1 == s2);System.out.println(s1.hashCode()+" "+s2.hashCode());} }// 餓漢式(靜態變量) class Singleton1{// 構造器私有化,外部不能newprivate Singleton1(){}private static Singleton1 instance;// 本類內部靜態代碼塊創建對象實例static {System.out.println("===");instance = new Singleton1();}// 向外部暴露一個靜態的公共方法public static Singleton1 getSingleton1(){return instance;} }?
總結
以上是生活随笔為你收集整理的设计模式:单例模式之饿汉式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式:设计模式七大原则之迪米特法则
- 下一篇: 设计模式:单例模式之懒汉式