單例模式乙個類只有乙個物件
建構函式私有,乙個靜態物件,並且提供乙個靜態的初始化物件的方法
**:
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace patterntest
loadbalancerpro balancer1 = loadbalancerpro.getloadbalancer();
loadbalancerpro balancer2 = loadbalancerpro.getloadbalancer();
loadbalancerpro balancer3 = loadbalancerpro.getloadbalancer();
loadbalancerpro balancer4 = loadbalancerpro.getloadbalancer();
if (balancer1 == balancer2 && balancer2 == balancer3 && balancer3 == balancer4)
for (int i = 0; i < 15; i++)
console.readkey();}}
///執行緒不安全模式
class singleton
public static singleton getinstance()
return _instance;}}
///執行緒安全模式
class loadbalancer
//多執行緒安全,雙檢
public static loadbalancer getbalancer()}}
return _instance;
}public string server}}
/// ///.net優化後的單例模式,使用static readonly來實現。
///
class loadbalancerpro
,new server(),
new server (),
new server(),};}
public static loadbalancerpro getloadbalancer()
public string server}}
class server
public string ip
public override string tostring()
}}
設計模式 學習筆記(一) 單例模式
目錄 單例設計模式說的是採取一定方法保證在整個軟體系統中,對某個類只能存在乙個物件例項,並且該類只提供乙個取得其物件例項的方法 靜態方法 這是設計模式中最簡單的一種,沒準無意中就使用到過。適用場景 單例模式主要分為 1 餓漢模式 2 懶漢模式 標紅為推薦使用的方式 餓漢模式是在類的載入的時候就建立乙...
設計模式學習筆記 單例模式
定義 確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例模式的通用類圖如下 如下 public class singleton public static singleton getinstance public void dosomething 這裡需要注意幾個地方 1 要定義...
設計模式學習筆記(單例模式)
保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。單例模式是對全域性變數的一種改進。全域性變數空間利用率比較低,且在專案中是乙個不安全隱患,特別是在多執行緒程式中,會有很多的不可 性 同時,使用全域性變數,也不符合物件導向的封裝原則。1 基礎版本 include using namespace...