我正在使用 GoF 的书学习单例模式。当我阅读它的后果时,我遇到了一个问题:
- 比类操作更灵活:封装单例功能的另一种方法是使用类操作(即 C++ 中的静态成员函数或 Smalltalk 中的类方法)。但是这两种语言技术都很难改变设计以允许一个类的多个实例。此外,C++ 中的静态成员函数永远不是虚拟的,因此子类不能多态地覆盖它们。
我真的不明白这个解释。我认为类操作(静态方法)也可以允许一个类的多个实例,如果我使用实例的静态列表,但我当然知道我错了。
那么,任何人都可以给我一些例子来帮助我理解这个问题吗?非常感谢!