可能重复:
C++单例模式与完全静态对象
你好,
为什么我应该选择单例模式而不是静态类方法。
MoneyPrinter::addJob(PrinterJob &job);
or
MoneyPrinter::getInstance().addJob(PrinterJob &job);
这只是一个风格问题吗? 你使用什么?为什么?
附注:我知道默认情况下单例模式不是线程安全的(第一次初始化)。
可能重复:
C++单例模式与完全静态对象
你好,
为什么我应该选择单例模式而不是静态类方法。
MoneyPrinter::addJob(PrinterJob &job);
or
MoneyPrinter::getInstance().addJob(PrinterJob &job);
这只是一个风格问题吗? 你使用什么?为什么?
附注:我知道默认情况下单例模式不是线程安全的(第一次初始化)。
为什么我应该选择单例而不是静态类方法
单例可以有内部状态(例如在您的示例中,已添加作业列表),即单例类的成员数据。
你使用什么?为什么?
如果没有状态,则使用静态方法,因为这是最简单的。
否则,使用单例,最好是静态初始化(而不是按需或运行时初始化)。
如果您使用静态成员函数,由于使用的语法,更难将Singleton-ness重构出来。这是其中一个原因。