單例模式 思考與實現

2021-10-12 16:52:03 字數 654 閱讀 1993

整個工程中只能建立乙個物件

1-懶漢式

不足:多執行緒下可能出現執行緒不安全問題

class

manager

// 建構函式 私有化

manager

(const manager&m)

// 拷貝建構函式 私有化

public

: manager*

getinstance()

return ptr;}}

;// 指標置空,防止出現野指標

manager* manager::ptr =

nullptr

;

2-餓漢式

優勢:可以避免多執行緒帶來的不安全問題

class

manager

// 建構函式 私有化

manager

(const manager&m)

// 拷貝建構函式 私有化

public

: manager*

getinstance()

};// 在類載入完成之後就建立物件

manager* manager::ptr =

new manager;

單例模式思考

1 單例模式的實現首先要考慮的乙個方面是不能被外部例項化,所以建構函式定義為private.然後還要返回乙個例項。如下 public class singleton public static singleton createinstance return instance 2 第乙個例子沒有考慮多...

單例模式幾點思考

靜態方法中產生的物件會在執行後被釋放,被gc清理,不會一直存在於記憶體中,且靜態方法會多次初始化和釋放,占用資源 單例模式一般需要長存記憶體中,節約資源 靜態一般用於全域性範圍訪問,單例多見於工廠模式或者窗體等 列舉特點 不繼承object類,繼承了enum類,是乙個抽象類 屬性大寫且必須位於前面 ...

設計模式 單例模式與迭代器模式的思考

單例模式 1.定義乙個私有的建構函式。2.定義乙個私有的靜態例項。3.定義乙個共有的靜態函式,用於返回這個類的唯一例項。如下 using system using system.collections.generic using system.linq using system.text priva...