單例模式 設計模式學習筆記(一)

2021-10-05 13:43:09 字數 1279 閱讀 3998

單例模式乙個類只有乙個物件

建構函式私有,乙個靜態物件,並且提供乙個靜態的初始化物件的方法

**:

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...