在设计单例模式时,为什么构造方法被设为protected
而不是private
?这是我在网上看到的。
我们想要控制该类所创建的实例数量,这很合理,但为什么要使用protected
?private
不也可以吗?
在设计单例模式时,为什么构造方法被设为protected
而不是private
?这是我在网上看到的。
我们想要控制该类所创建的实例数量,这很合理,但为什么要使用protected
?private
不也可以吗?
GetInstance()
类型函数中将其作为自己的一部分返回。这就是在设计模式中这样做的原因。因此,只有在计划从Singleton继承时,它才真正相关。在使用单例注册表时,仍然需要在基本Singleton中使用更灵活的方法使用一个Singleton注册表。单例类可以通过名称在众所周知的注册表中注册其单例实例,而不是让
Instance
定义可能的单例类集。
protected
构造函数(根据给定的实现)。protected
。否则,选择private
。使用单例模式是不好的。没什么好说的。
话虽如此,构造函数可以是私有的,没有问题。但是如果您想从单例派生另一个单例(好像拥有一个单例还不够糟糕一样)?在这种情况下,派生类需要访问基础单例的构造函数。
<iostream>
:)))) - Armen Tsirunyancout
明显是女性,我反对你的男性主导假设。 - Kerrek SB这一切都与继承有关。
class lazy_singleton: public singleton {};
将是具有singleton构造函数的相同singleton