我给出以下代码来说明我的问题:
class Abc
{
public:
void do_something() {};
};
class Def
{
public:
static void do_something() {};
};
Run Code Online (Sandbox Code Playgroud)
这两个类Abc和Def没有变量来之类的状态.在这种情况下,哪种定义函数的do_something方式更好?将它作为静态函数更好吗?
不,你完全错了.是否有任何实例变量保持状态是一个实现细节,您不应该在界面设计中关心.
如果方法适用于类,而不是类的实例,则使用静态方法(在其他地方称为"类方法",这是一个更好的词).如果要创建作为类实例的对象,则使用实例方法.
既然你甚至没有提到你应该使用的标准,那么没有人可以告诉你在你的情况下什么是更好的.另一方面,如果你在谈论"阶级的状态"(这是人们不经常谈论的事情)似乎表明你应该使用类方法或单例.