包含虚函数的类可以单例吗?
简单地
class A:public B
{
public:
virtual fun(); //will be defined by this class (inherited from Class B)
}
我可以让这门课单身吗?
包含虚函数的类可以单例吗?
简单地
class A:public B
{
public:
virtual fun(); //will be defined by this class (inherited from Class B)
}
我可以让这门课单身吗?
如果你问它是否可能,那么是的,当然,完全有可能从这样的类中创建一个单例。
如果你问它是否有意义,那么这个问题就更难回答了;但主要是因为单例通常是一个非常有争议的模式。因此,您可能想问自己是否真的需要单例(例如,单例通常会使测试变得更加困难,您必须引入特殊的“变通办法”才能让类在测试中使用它们;基本上,它们是非常隐蔽的全局变量)。
您还必须详细说明预期的用例:当您声明一个虚拟方法时,您基本上是说某个子类可能想要更改该行为。如果基类是单例,则意味着只能有一个。是否必须适用于所有子类?您的系统中是否应该只有一个类派生自该类?然后你最好看看工厂,并可能将它们与 Singleton 一起使用(同样,如果你决定你真的需要Singleton)。