自學日記 設計模式 單例模式

2021-10-21 20:40:31 字數 1137 閱讀 8058

單例模式是指在整個程式執行期間,保證某個類只有乙個例項化物件,因此構造方法肯定是私有的,因為外部是無法new出來物件的,所以獲取類的方法必須是靜態的

常見的引用場景包括:

程式配置類,使用程式在啟動的時候只需要配置一次。也可以理解成程式在啟動的時候需要載入的一些東西,一些準備工作。

連線池、執行緒池等物件。乙個應用程式應該只有乙個

這裡粗濾提乙個概念,類的執行流程:

(類載入)將類的資訊載入到記憶體中,並為每種資料型別劃分記憶體空間

➡(例項化)將記憶體中為類的屬性設定初始值,即各個資料型別的初始值(int為0,boolean 為false,string預設值為null,物件預設值為null)

➡(初始化)為類的屬性附上我們傳入的值(比如說有參構造,這裡才是真正我們給定的值),靜態**塊或者靜態變數是在初始化階段才被賦值或者執行!

static存在的意義個人理解。

如果說static是為了在初始化前進行賦值或者執行一段**邏輯,為什麼不在建構函式中直接賦值或執行邏輯呢?考慮到構造方法過載,減少**重複,這樣設計也是有必要的。歡迎大佬補充

單例模式的寫法

懶漢式

//在類初始化之後model物件為空物件,在呼叫getmodel方法的時候才進行例項化

public class singletonmodel

public static singletonmodel getmodel()

return model;

}}

餓漢式

//在初始化時就已經new了乙個物件了(餓漢,比較急),物件的獲取通過getmodel方法獲得

public class singletonmodel

public static singletonmodel getmodel()

}

雙鎖機制的單例模式

public class singletonmodel 

public static singletonmodel getmodel()}}

return model;

}}

有不對的地方請各位大佬指正。

自學日記 設計模式 工廠模式

設計模式大多應用於框架級別,我們在看框架原始碼時,會看到各種設計模式,雖然我肯定是寫不出來框架的,但是還是覺得要學一下!故事開始 聯盟和部落脆弱的協議又扯淡了,戰爭一觸即發,雙方需要坦克,飛機,ak47,m4a1,東風快遞等各種重火力。烏瑞恩國王開始為戰略物資發愁,於是指示希爾瓦娜斯籌措物資。希爾瓦...

設計模式 單例模式

單例模式 singleton pattern 是乙個比較簡單的模式,其定義如下 ensure a class has only one instance,and provide a golbal point of acess to it.確保某乙個類只有乙個例項,而且自行例項化並且向整個系統提供這個...

設計模式 單例模式

class testsingleton static public function instance return self testsingleton private function clone public function setsinvar sinvar public function ...