一 單例模式 Singleton

2022-03-02 16:04:45 字數 1787 閱讀 9472

單例模式最初的定義出現於《設計模式》(艾迪生維斯理, 1994):「保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。」

特點:一是某個類只能有乙個例項;

二是它必須自行建立這個例項;

三是它必須自行向整個系統提供這個例項。

一、經典實現

using

system;

namespace

singletonpattern

//統一該類的

public

static

classicalsample getinstance()}}

console.writeline(

"獲取例項");

return

_classicalsample;}}

}

二、靜態建構函式實現

using

system;

namespace

singletonpattern

//靜態建構函式:第一次使用的時候執行,且只執行一次

static

staticconstructorsample()

public

static

staticconstructorsample getinstance()

}}

三、靜態變數實現

using

system;

namespace

singletonpattern

public

static

staticvariablesample getinstance()

}}

測試:

using

system;

using

system.collections.generic;

using

system.linq;

using

system.threading.tasks;

namespace

singletonpattern

static

void

classicalsampletest()

));}

taskfactory.continuewhenall(tasks.toarray(), p =>次例項

", p.count());

console.writeline(

"例項個數

", list.distinct().count());

});}

static

void

staticconstructorsampletest()

));}

taskfactory.continuewhenall(tasks.toarray(), p =>次例項

", p.count());

console.writeline(

"例項個數

", list.distinct().count());

});}

static

void

staticvariablesampletest()

));}

taskfactory.continuewhenall(tasks.toarray(), p =>次例項

", p.count());

console.writeline(

"例項個數

", list.distinct().count());

});}

}}

Singleton 單例 模式

singleton 模式的宗旨在於確保某個類只有乙個例項,別且為之提供乙個全域性訪問點。為了防止其他工作人員例項化我們的類,可以為該類建立唯一乙個構造器,並將構造器的可見 設定為私有。值得注意的是,如果我們建立了其他的非私有的構造器,或者根本沒有為該類提 供構造器,那麼其他人員還是能例項化我們的類。...

Singleton 單例 模式

今天看了,單例模式。感覺他的本質就是,控制類例項的個數。特例就是,控制static變數的唯一性,保證各個程式共享著同一例項。乙個例子 package singleton description 這是乙個單例模式的使用demo author kyle goal 實現乙個類僅有乙個例項 singleto...

單例(Singleton)模式

單例模式的特點 singleton模式包含的角色只有乙個,那就是singleton。singleton擁有乙個私有建構函式,確保使用者無法通過new取得singleton的例項。除此之外,該模式中包含乙個靜態私有成員變數instance與靜態公有方法instance。instance方法負責檢驗並例...