單例設計模式:必須對於多個程式使用同乙個配置資訊物件時,就需要保證該物件的唯一性。
如何保證物件唯一性呢?
1.不允許其它程式用new來建立物件
2.在該類建立乙個本類物件
3.對外提供乙個方法讓其它程式可以獲取該物件
步奏:1.私有化該類建構函式
2.通過new在本類中建立乙個本類物件
3.定義乙個公有的方法將建立的物件返回
經典的單例設計模式有兩種:
1.餓漢式
public class single //私有化該類建構函式
public static single getinstance()
}
2.懶漢式
public class single2 //私有化該類建構函式
public static single2 getinstance()
}
總結一下,兩種方案的建構函式和公用方法都是靜態的(static),例項和公用方法又都是私有的(private)。但是餓漢式每次呼叫的時候不用做建立,直接返回已經建立好的例項。這樣雖然節省了時間,但是卻占用了空間,例項本身為static的,會一直在記憶體中帶著。懶漢式則是判斷,在用的時候才載入,會影響程式的速度。最關鍵的是,在併發的情況下,懶漢式是不安全的。如果兩個執行緒,我們稱它們為執行緒1和執行緒2,在同一時間呼叫getinstance()方法,如果執行緒1先進入if塊,然後執行緒2進行控制,那麼就會有兩個例項被建立。 物件導向 單例設計模式
單例設計模式 就是保證該類在程式中只能存在乙個物件,所以不能讓別人例項化該類,所以要私有化 private 該類的建構函式,但是你要為別人提供乙個該類的唯一物件,所以你要在該類中定義乙個靜態的方法返回本類物件。設計模式 解決某一問題最行之有效的方法 單例設計模式 解決乙個類在記憶體只存在乙個物件 想...
物件導向 單例設計模式
單例設計模式 就是保證該類在程式中只能存在乙個物件,所以不能讓別人例項化該類,所以要私有化 private 該類的建構函式,但是你要為別人提供乙個該類的唯一物件,所以你要在該類中定義乙個靜態的方法返回本類物件。設計模式 解決某一問題最行之有效的方法 單例設計模式 解決乙個類在記憶體只存在乙個物件 想...
物件導向之單例設計模式
設計模式 解決某一種問題的思想。是一種行之有效的解決方式。23種模式。單例設計模式。思想!思想!思想!解決問題 能夠保證乙個類的物件在記憶體中的唯一性。應用場景 多個成序都在操作同乙個配置檔案時,程式b需要知道程式a的結果並基於此結果進行後續操作 前提是,資料都儲存在配置檔案的物件中,要求程式a和程...