[程式] 使用C++六種實現singleton的方法

作者: NDark (溺於黑暗)   2025-09-27 22:30:06
因為要翻舊文件查資料剛好翻到這篇我認為很有趣的題目.
2011 年我當時綜合整理了我所理解Singleton能有幾種不同的實現方式
(當時我主要是寫C++所以以下的語法都是在這個程式語言上)
1. 靜態全域物件 (static/global variable)
2. 靜態區域物件 (static/function variable)
3. 靜態類別成員 (static class member)
4. 靜態類別指標 (static class pointer) : 我最喜歡的是這種.彈性最好.偶合及限制
最小.我把它叫做:收集器.
5. 繼承專用的singleton樣板 (inherit singleton template) : 這是當時最常見的作
法.
6. 反過來以singleton的樣板去繼承類別 : 這個方法很特別,非常優雅,但是程式碼很
dirty.我很不喜歡去維護這種程式碼. 後來我與C++的template就漸行漸遠了.
https://i.meee.com.tw/1B4Fs2E.jpg
作者: wulouise (在線上!=在電腦前)   2025-09-28 18:07:00
6你是說crtp?
作者: NDark (溺於黑暗)   2025-09-28 18:28:00
我離開C++很久了名詞我不熟 有圖請自行看
作者: nicetw20xx (哇愛台灣)   2025-09-29 03:25:00
推分享
作者: Killercat (殺人貓™)   2025-10-11 00:10:00
6不就loki的singleton XD不過modern c++ design有些東西也滿過時了(遠目)
作者: NDark (溺於黑暗)   2025-10-11 08:41:00
恕我11年還真的不知道 後來都沒有再刷新C++知識了

Links booklink

Contact Us: admin [ a t ] ucptt.com