作者NDark (溺於黑暗)
看板GameDesign
標題[程式] 使用C++六種實現singleton的方法
時間Sat Sep 27 22:30:06 2025
因為要翻舊文件查資料剛好翻到這篇我認為很有趣的題目.
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
--
"May the Balance be with U"(願平衡與你同在)
遊戲設計教學,討論,分享。歡迎來信。
黑水溝歷史文庫
https://ndark.wordpress.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.206.94 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/GameDesign/M.1758983410.A.4CF.html
1F:推 wulouise: 6你是說crtp? 09/28 18:07
2F:→ NDark: 我離開C++很久了名詞我不熟 有圖請自行看 09/28 18:28
3F:推 nicetw20xx: 推分享 09/29 03:25
4F:推 Killercat: 6不就loki的singleton XD 10/11 00:10
5F:→ Killercat: 不過modern c++ design有些東西也滿過時了(遠目) 10/11 00:11
6F:→ NDark: 恕我11年還真的不知道 後來都沒有再刷新C++知識了 10/11 08:41
7F:推 kingroy: C++那個標準也是更新下檢只更一點又左右橫跳,想更新到C+ 11/13 11:21
8F:→ kingroy: +20以後還有些feature其他compiler不支援 11/13 11:21