处理许多单一功能的最佳实践

Lik*_*kon 4 c++ class

我有许多小函数,每个函数都做一件事,例如:pingServer,checkUserValidAccount,countDistance.

将每个函数包装到单个类中是不值得的.

在c ++中处理这么多不同的小函数的最佳实践是什么?

也许写一些名为Helpers的类,例如NetworkHelpers?

Luc*_*ore 6

将它们放在一个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)

如您所见,在命名空间内,该函数不依赖于除参数之外的任何内容.

在类中,因为它有一个状态,你为每个服务器创建一个对象(所以类似的行为,但取决于对象不同),你调用没有参数的函数,因为对象有一个状态.

我希望这说清楚.