作者:
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