我有许多小函数,每个函数都做一件事,例如:pingServer,checkUserValidAccount,countDistance.
将每个函数包装到单个类中是不值得的.
在c ++中处理这么多不同的小函数的最佳实践是什么?
也许写一些名为Helpers的类,例如NetworkHelpers?
将它们放在一个namespace
是一个选项.我认为不需要上课.类的实例意味着表示一个状态,但是你描述了一堆自由函数,所以是一个无状态系统.
"不值得将每个功能都包含在单一类中." - 这不是决定不写课的有效论据.一个类可以有一个成员和一个单独的方法,但是如果它背后有逻辑,你应该编写它.
如果你的函数和你的逻辑要求使用一个类,你的函数具有相同的逻辑,但根据对象的不同操作,一定要编写一个类.如果您的唯一目的是将函数组合在一起,当它们的逻辑实际上不依赖于类的相同实例时,将它们组合在命名空间中.
基于您的问题的示例:
namespace NetworkHelpers
{
//free function, use a namespace
bool pingServer(std::string hostname);
}
//alternative, where the object has a state:
class ServerConnection
{
std::string _hostname;
public:
NetworkHelpersClass(std::string hostname)
{
_hostname = hostname;
}
bool pingServer()
{
return NetworkHelpersNamespace::pingServer(_hostname);
}
};
Run Code Online (Sandbox Code Playgroud)
如您所见,在命名空间内,该函数不依赖于除参数之外的任何内容.
在类中,因为它有一个状态,你为每个服务器创建一个对象(所以类似的行为,但取决于对象不同),你调用没有参数的函数,因为对象有一个状态.
我希望这说清楚.