作者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/cn.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