關於c 中單例模式的一些問題

2022-09-26 01:42:14 字數 896 閱讀 3672

本文主要介紹了關於單例模式的一些問題,想學習c#單例模式的同學們可以看一看,還是有些幫助

c#中的單例模式

單例模式是指在設計乙個類時,保證在執行期間只有乙個例項物件,因為過多相同的例項物件會占用記憶體空間。

##舉個例子

1.宣告乙個靜態的class1類的變數來引用唯一的物件。

2.創造私有的無參構造方法,使外部無法呼叫這個類的構造方法。

3.建立靜態的方法,建立此類唯一的物件。

4.通過tempclass1 = new class1();呼叫私有構造方法建立該例項

#單例模式的一些特點

1.在類的內部建立乙個該類的例項物件,並使用靜態變數tempclass1引用該物件,田於變數應該禁止外界直接訪問,因此使用private修飾,宣告為私有成員。

2.類的構造方法使用 private修飾,宣告為私有,這樣就不能在類的外程式設計客棧部使用new關鍵字來建立例項物件。

3.為了 在類的外部能夠獲得類的例項物件,需要定義乙個靜態方法class1method(),用於返回該類例項tempclass1。

證明class1只有乙個例項物件

也就是說這兩個變數是同時指向同乙個物件的。

具體**

private static class1 tempclass1;

private class1()

public static class1 class1method()

return tempclass1;

}www.cppcns.com

class1 c1 = class1.class1method();

class1 c2 = class1.class1method();

if(c1==c2)

console.readkey();

總結

單例應該考慮的一些問題

說到單例模式可能大家都不陌生,都會用,但是如何才能寫出乙個健壯的單例模式,並擴充套件成適合專案的單例模式其實也是需要仔細思考的問題.通常我們實現單例的方式有幾種,在初始化的時候建立物件,另一種方式則是通過方法判斷是否為空,並建立物件返回。貌似看上去沒什麼太大差距,但事實上通過初始化時建立物件是執行緒...

c 中關於記憶體的一些問題

void getmemory char p void test void 請問執行test函式會有什麼樣的結果?答 程式崩潰。因為getmemory並不能傳遞動態記憶體,test函式中的str一直都是null。strcpy str,helloworld 將使程式崩潰。解析 該函式中的p是乙個臨時的指...

C中關於陣列的一些問題

int arr 4 這裡的4必須是乙個常量常量定義方式有 1.巨集定義 define size 4 此時可以使用為 int arr size 2.列舉 enum size 3.const修飾 const int size 4 此時的const修飾的常量不可以用作陣列的常量表示式!這是因為c語言本身並...