設計模式 2 單例模式

2021-07-15 11:01:41 字數 1019 閱讀 9667

單例模式,也是非常好理解的一種設計模式。

單例,也叫單件,目的是為了保證乙個類只有乙個例項。當然,沒使用上單例模式的時候,在**實現時候,注意不要隨便new某個物件,這…..的確可以,但很不安全。因此簡單**一處理,乙個單例模式便出來了。

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace _2_單例模式

public

static singletoninfo getinfo()

return info;}}

class program

}}

上邊的寫法叫做懶漢模式,所謂懶,就是沒到用它的那天,它都不肯生成個實際出來,以節約資源。然而還有另外一種差不多的寫法,叫餓漢模式,則系統始終階段它便有那麼乙個實際。實際上就只稍做改變

public

class eagersingletoninfo

public

static eagersingletoninfo getinfo()

}

另外,第一段**中還提及到所寫的單例只針對沒有多執行緒的情況,面對多執行緒,有較小的概率還是會不安全的。

public

static singletoninfo getinfo()

return info;

}

解決起來也無非加鎖,做法常規則,只不過lock在開發中的不多用。

public

class singletoninfo

public

static singletoninfo getinfo()}}

return info;

}}

設計模式2 單例模式

確保乙個類中只有乙個例項,自行例項化並向整個系統提供這個例項,這個類被稱為單例類,它提供全域性的訪問方法 在類中只有乙個例項,並提供乙個靜態的getinstacne 方法用於外界唯一訪問這個例項 防止在外部對其實例化,建構函式私有化 在單例類內部定義了乙個singleton型別的靜態物件,作為外部共...

設計模式2 單例模式

單例模式 只能建立乙個例項化物件,屬於建立型模式 注 該類私有構造方法 該類只能自己建立自己的例項 實現方式有5種,分別是惡漢模式 懶漢模式,雙檢鎖 雙重校驗鎖,匿名內部類和列舉 public class singleton public static singleton getinstance 只...

設計模式2 單例模式

單例模式解決的問題就是 保證乙個類只能例項化乙個物件。一般我們保證乙個類只有乙個例項化物件時,做法是 public class car 如果這個brake物件不是僅供這乙個car類使用類呢?這樣做只保證了在乙個car物件有乙個brake,多個car物件或者其他使用brake的類例項就會有多個brak...