設(shè)計模式資料:http:///tags/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/ 23種設(shè)計模式講解:http://edu./course/426/lesson/list 1,單例模式的應(yīng)用場景 (1),網(wǎng)站的計數(shù)器:記錄訪問量的次數(shù) (2),web應(yīng)用的配置管理器:管理多個應(yīng)用的配置信息 (3),應(yīng)用程序的日志管理系統(tǒng):便于信息的維護(hù)和查閱 (4)數(shù)據(jù)庫應(yīng)用的連接池 (5),多線程應(yīng)用的線程池 (7),操作系統(tǒng)的文件系統(tǒng)和打印假脫機(jī) 2,,單例模式的實現(xiàn) (1),借助于類型禁止在外部創(chuàng)建對象 私有構(gòu)造函數(shù):private (2),僅在類型內(nèi)部創(chuàng)建唯一對象實例 類自己維護(hù)一個唯一的實例 靜態(tài)成員變量:instance (3),提供用于獲取對象實例的公知接口 提供訪問該實例的方法 靜態(tài)成員函數(shù)(靜態(tài)函數(shù)類似全局,,屬于類,而不屬于對象) getInstance(); (4),單例的實現(xiàn)模式 餓漢式實現(xiàn) --優(yōu)點:加載進(jìn)程時,靜態(tài)創(chuàng)建單例對象,線程安全 --缺點:無論使用與否,總要創(chuàng)建對象 總結(jié):空間換時間,小對象,使用頻繁時使用 實現(xiàn)方式: /Singleton.h #ifndef _SINGLETON_H_ #define _SINGLETON_H_ #include <iostream> using namespace std; class Singleton { public: static Singleton* Instance(); protected: Singleton(); private: static Singleton* _instance; }; #endif //~_SINGLETON_H_ //源文件 |
|