Singleton單件 建立型模式

2021-09-08 15:46:31 字數 1161 閱讀 8962

模式分類

從目的來看:

--建立型模式: 負責物件建立。

--結構型模式:處理類與物件間的組合。

--行為型模式: 類與物件互動中的職責分配。

從範圍來看:

--類模式處理類與子類的靜態關係。

--物件模式處理物件間的動態關係。

動機: 如果繞過常規的構造器,提供一種機制來保證乙個類只能有乙個例項。

例項如下:

public class singleton

private static singleton instance;

//思想如下:我不能讓使用者例項化該類,因為,如果我讓使用者例項化,使用者就可以例項化很多例項。

private singleton(){}

//怎麼辦呢?我想到,可以這樣對外提供乙個方法,或者屬性,該方法判斷,只能例項化一次

public static singleton instance

getif ( instance == null) }

return instance;

} 以下還有一些方法也可以完成多執行緒的單例模式 ,有乙個弊端就是不支援引數化

public  class singleton

public static readonly singleton instance = new singleton();

private singleton(){}

//上面這個**怎麼理解呢?它的原理如下

public class singleton

public static readonly singleton instance;  //對靜態欄位的賦值前,首先系統會例項化乙個靜態的建構函式

static singleton()     //在多執行緒環境下,只有乙個執行緒執行靜態構造器,所以他只有乙份,這樣就保證了他的唯一性,靜態構造器必須是無參的,並且只能有乙個靜態構造器

instance = new singleton();  然後在建構函式內,為靜態字段賦值     

}  pirvate singleton(){}

} 模式**,沒有固定,只要能達到效果,就是該模式,比較靈活!這個模式主要是對例項個數的控制

singleton模式的核心是"如何控制使用者使用new對乙個類的例項構造器的任意呼叫"

建立型模式 單件 Singleton

注意 我的文章一般都是傾向於原理性介紹,內含 可能存在錯漏,也絕對不是大家可以拿來就用的標準 模式設計重要在於思想,而不在於如何實現。考慮 建立型模式 工廠方法 factory method 中,我們對於每種虛構造器物件,我們都只需要乙個例項。類似的情況還在許多地方出現,概括起來就是 某種型別,只需...

Singleton單例模式(建立型模式)

為什麼要使用單例模式?在軟體系統中,有一種特殊的類,必須保證他們在系統中只存在乙個例項,才能確保它們的邏輯正確性 以及良好的效率 單例模式的特點?保證乙個類僅有乙個例項,並提供乙個該例項的全域性訪問點 public class singleton public static singleton in...

(建立型模式)Singleton 單例模式

保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點 確保某個類只有乙個例項 類的靜態成員變數 而且自行例項化並向整個系統提供這個例項單例模式。直接將類的構造方法改成私有的 所有類都有構造方法,不編碼則系統預設生成空的構造方法,若有顯示定義的構造方法,預設的構造方法就會失效 然後在乙個public...