日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 基礎工具-單件模式

基礎工具-單件模式

來源:程序員人生   發布時間:2015-04-08 08:55:14 閱讀次數:3892次

作為C++設計模式中的單件模式歸屬于創建型模式之1,在軟件設計進程中“出場“的機會還是很多,以下源碼作為自己學習開源庫代碼時針對單件 模式做的1個總結,方便后期設計進程中的參考和學習。

#ifndef SINGLETON_HPP_ #define SINGLETON_HPP_ #include <boost/thread.hpp> namespace ts { /** *@breif *@note base */ class CLocalStaticInstantiation { protected: template <class T> static void create(T*& ptr) { static T instance; // 靜態局部變量 ptr = &instance; } }; /** *@breif *@note Helper class */ template <class T> class CStaticInstantiationHelpler { // friend class friend class CStaticInstantiation; // holder static T instance; }; template <class T> T CStaticInstantiationHelpler<T>::instance; // 靜態全局變量[這是1個技能,否則單個對象沒法隨時初始化] /** *@breif *@note support the static */ class CStaticInstantiation { protected: template <class T> static void create(T*& ptr) { ptr = &CStaticInstantiationHelpler<T>::instance; } }; template <class T> class CDestroyer { T *doomed; public: CDestroyer(T* q):doomed(q) {} ~CDestroyer(); }; template <class T> CDestroyer<T>::~CDestroyer() { try { if (doomed) { delete doomed; // 在這里主要支持heap對象的反初始化 std::cout << "delete [ " << doomed << " ]" << std::endl; } } catch (...){} doomed = 0; } /** *@breif *@note support the dynamic alloctor */ class CLazyInstantiation { protected: template <class T> static void create(T*& ptr) { ptr = new T; // 支持運行時分配 static CDestroyer<T> destroyer(ptr); // 由static去進行刪除 } }; template <class T, class InstantiationPolicy=CLazyInstantiation> class CSingleton : private InstantiationPolicy { public: static T* instance(); }; template <class T, class InstantiationPolicy> T* CSingleton<T, InstantiationPolicy>::instance() { static T* ptr = 0; static boost::mutex m; if ( !ptr ) { boost::mutex::scoped_lock lock(m); // 支持多線程訪問 if ( !ptr ) // 根據設計模式的設計思想來設計兩次檢查指針 { InstantiationPolicy::create(ptr); } } return const_cast<T*>(ptr); } } #endif // SINGLETON_HPP_


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美特级 | 亚洲一二三 | 国产精品99久久久久久www | 亚洲一区在线观看视频 | 正在播放国产精品 | 亚洲天堂资源 | 国产精品日韩一区二区三区 | 亚洲一区 中文字幕 | 久久久久久久久99精品大 | 在线成人www免费观看视频 | 在线播放一区二区三区 | 亚洲成人av观看 | 久久久国产一区二区三区 | 91一区二区三区在线观看 | 成人国产一区 | 免费在线观看91 | 精品国产一区二区三区四区四 | 99亚洲视频 | 亚洲乱码国产乱码精品精 | 欧美一区二区三区在线播放 | 国产三级电影在线观看 | 国产精品中文字幕在线观看 | av播播| 欧美日韩激情在线一区二区三区 | 欧美高清视频在线观看 | 亚洲一级一级 | 日韩欧美一区二区三区在线视频 | 中文字幕在线免费观看视频 | 成人小视频在线观看 | 国产精品亚洲一区二区三区在线 | 日韩 欧美 亚洲 国产 | 91高清版| 成人欧美一区二区 | www.天天操.com | 国产精品成人av | 亚洲 自拍 另类 欧美 丝袜 | 亚洲欧洲精品成人久久奇米网 | 婷婷99狠狠躁天天躁中文字幕 | 成人精品网站在线观看 | 国产一区二区久久 | 免费a观看|