最近,在學習設計模式,由於比較熟悉c++,所以,都是用c++實現的。
由於沒看過《設計模式》之類的書,都是從網上搜的資料,看的**,看完之後,自己又重新實現了一遍。
由於是幹androd的,所以這個單例模式是參考的android實現的.
位置:android4.4.2\442\system\core\include\utils\singleton.h
android4.4.2\442\frameworks\native\services\sensorservice\sensorservice.cpp
標頭檔案
#ifndef __singleton__
#define __singleton__
#include
"mutex_demo.h"
//看我前面的文章,有這部分的**
template>
class singleton
return
*instance;
}protected:
singleton(){}
~singleton(){}
private:
static mutexlock m_mutex;
static type
* sinstance;
};//初始化靜態變數用的
#define singleton_sttic_instance(type) \
template<>
type
* singleton<
type
>
::sinstance(null); \
template<> mutexlock singleton<
type
>
::m_mutex;
#endif
cpp檔案
#include
#include "mutex_demo.h"
#include "singleton.h"
using
namespace
std;
class sensordevice:public singleton//必須為私有
};singleton_sttic_instance(sensordevice) //初始化static變數
使用方法:
int main()
結果:
getinstance()
sensordevice
::show()
1.必須將建構函式私有化,這樣就不能通過new來私自取得物件2在類中建立乙個本類靜態物件
3 提供乙個靜態的方法可以得到該物件
設計模式學習(一) 單例模式
單例模式的定義 保證乙個類僅有例項,並提供乙個訪問它的全域性訪問點。例如執行緒池 全域性快取 瀏覽器中的window物件等。在實際的js開發中,也有用到,比如登陸彈窗。單一職責原則,singlemodelmitt函式只做單例邏輯的管理 class singlemodelmitt getsingle ...
學習設計模式 單例模式
適用於 優點 缺點 1.懶漢式 public class singleton public static synchronized singleton getinstance return uniqueinstance 2.餓漢式 public class singleton public stat...
設計模式學習 單例模式
單例模式是一種常用的軟體設計模式。通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。1.單例模式特點 2.單例模式作用 3.單例模式種類 a.餓漢式 b.懶漢式 c.懶漢式 ...