整個工程中只能建立乙個物件
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...