單例設計模式(物件導向相關二)

2021-08-22 12:59:40 字數 748 閱讀 3603

單例設計模式:必須對於多個程式使用同乙個配置資訊物件時,就需要保證該物件的唯一性。

如何保證物件唯一性呢?

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和程...