单例模式的构造函数 为什么 不。是。私有的?

jean7155 2019-05-22 02:02:43
我一直记得 设计模式的单例模式,构造函数 应该是私有的,这样保证绝对的单例。

最近看的很多开源代码的单例模式都 中 经常使用 单例的模板,继承一个 就可以是单例模式,
或者其他的,也是,但是都 构造函数都不是私有的。

我不太理解。谁知道。给讲解吧。
...全文
446 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
没什么大问题吧。
jean7155 2019-05-24
  • 打赏
  • 举报
回复
引用 3 楼 sdghchj 的回复:
贴出代码吧。得看单例模板是怎么设计的。 class Singleton<A>跟class A是两个东东,谁是单例?Singleton<A>是单例,A不一定是单例。 继承使用单例模板而不直接使用单例模板,是不是对单例模板有什么误会?
对,就是这类的东西。为啥我感觉 Singleton<A> 的构造函数也不是私有的? 周末休息,下周我找点代码来。
sdghchj 2019-05-23
  • 打赏
  • 举报
回复
贴出代码吧。得看单例模板是怎么设计的。 class Singleton<A>跟class A是两个东东,谁是单例?Singleton<A>是单例,A不一定是单例。 继承使用单例模板而不直接使用单例模板,是不是对单例模板有什么误会?
jean7155 2019-05-23
  • 打赏
  • 举报
回复
看见很多开源的 单例都是,一直没理解。你说的也是一直理解的感觉。
轻箬笠 2019-05-22
  • 打赏
  • 举报
回复
应该是私有的吧。工作中继承单例模板的时候,都特地把构造函数放到private里面。
不过不是私有的,也没啥大问题,我猜测是因为生成类模板(vs添加类)的时候,构造函数都是在public下面的,就没改了。而且使用过程中,已经知道存在单例的话,一般也不会再去调用构造函数了。

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧