在開發過程中常常會有這樣的需求:
這樣就需要保證乙個類只生成乙個唯一的例項物件。這就是單例模式了。
gof對單例模式的定義是:保證乙個類、只有乙個例項存在,同時提供能對該例項加以訪問的全域性訪問方法。
下面來看結構圖(摘至 程杰 大話設計模式)
設計模式類時要注意兩點:
單例模式有兩種建立方式:
下面來看**吧
1、餓漢式
2、懶漢式public class person
//提供乙個全域性的靜態方法
public static person getperson()
private string name;
public string getname()
public void setname(string name)
}
總結:public class person
//提供乙個全域性的靜態方法
public static person4 getperson() }}
return person;
} private string name;
public string getname()
public void setname(string name)
}
當遇到需要保證乙個類只生成乙個唯一的例項物件的場景時,就可以使用單例模式了。餓漢式類載入時初始化例項,提前占用系統資源;懶漢式需要考慮多執行緒訪問安全問題。所以需要根據實際的業務場景來選擇。
學習設計模式 單例模式
適用於 優點 缺點 1.懶漢式 public class singleton public static synchronized singleton getinstance return uniqueinstance 2.餓漢式 public class singleton public stat...
設計模式學習 單例模式
單例模式是一種常用的軟體設計模式。通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。1.單例模式特點 2.單例模式作用 3.單例模式種類 a.餓漢式 b.懶漢式 c.懶漢式 ...
學習設計模式( ) 單例模式
定義 確保乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。型別 建立類模式 單例模式應該是23種設計模式中最簡單的一種模式了。它有以下幾個要素 單例模式現在主流推薦第一種雙重檢查型。以前流行的有根據例項化物件時機的不同有分為兩種 一種是餓漢式單例,一種是懶漢式單例。餓漢式單例在單例類被載...