Ron*_*n_s 12 c++ design-patterns
在设计单例时,为什么要构造构造protected而不是private?这基于我在网上看到的内容.
我们想控制那个类的实例数,公平,但为什么protected呢?不private会这样做吗?
首先,在绝大多数情况下,单身人士都是个坏主意(为什么?).使用它们甚至比全局变量少.
这样,子类可以实例化Singleton基类,在它自己的GetInstance()类型函数中将其作为自身的一部分返回.这就是它在设计模式中完成的原因.因此,如果你计划从Singleton继承,它只会真正相关.
GoF说,(第130页,对Singleton类进行子类化);
更灵活的方法使用单例注册表.
Instance单例类可以在众所周知的注册表中按名称注册其单例实例,而不是定义可能的单例类集.
在使用单例注册表时,protected仍然需要基础Singleton中的构造函数(根据给出的实现)
简而言之; protected如果您计划从Singleton继承,请创建它.否则,请继续private.
使用单例是不好的。时期。
也就是说,构造函数可以是私有的,没问题。但是,如果您想从您的单例派生另一个单例(就好像拥有一个单例还不够糟糕一样)怎么办?在这种情况下,派生类需要访问基单例构造函数。
| 归档时间: |
|
| 查看次数: |
4889 次 |
| 最近记录: |