处理多个单一函数的最佳实践
Best practice of handling many single functions
我有很多小函数,每个都在做一件事,例如:pingServer, checkUserValidAccount, countDistance。
把每个函数都包装成一个类是不值得的。
在c++中处理这么多不同的小函数的最佳实践是什么?也许写一些类叫帮手,如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);
}
};
可以看到,在命名空间内,函数不依赖于参数以外的任何东西。
在类内部,由于它有一个状态,并且您为每个服务器创建一个对象(如此相似的行为,但根据对象的不同而不同),因此您调用不带参数的函数,因为对象有一个状态。
与某些语言不同,c++不要求将每个函数放在一个类中。如果你有不属于类的函数,把它们放在命名空间中。
如果我可以添加除了名称空间之外的另一个最佳实践:将您的函数分组在dll中,并注意它们的依赖关系。避免循环链接,并创建具有尽可能少的依赖关系的低级库。
相关文章:
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 复制包含C++所有元素的对象!(构造函数和赋值,最佳实践?
- C++:将向量传递到构造函数以创建成员变量的最佳方法?
- C++ 将函数指针与最佳性能相结合
- 在指向现有内存地址的 hpp 文件中声明成员函数的最佳方法
- std::使用类成员函数创建线程 - 最佳实践
- 将(临时的?)std::string传递给使用它来构造一个接受副本的对象的函数的最佳方法是什么?
- 在 c++ 或 python 中生成一个体面的视差图以在 Raspberry Pi 上实现的最佳方法(算法或函数)是什么
- 将uint8_t*buffer和size_tbufferlen从C++传递到C中的API函数的最佳方式是什么
- 从类中的对象调用类中的函数的最佳方法
- 这是使用构造函数初始化数组对象的最佳方法吗?
- 最佳做法:在函数中频繁使用大时态缓冲区 (C++)
- 在 c++ 中抽象两个略有不同的函数的最佳方法是什么?
- C++最佳实践:接受uint8_t、uint16_t、uint32_t、浮点数的函数
- 使用 emplace_back 避免移动构造函数调用的最佳方法?
- 调用不属于基类的派生类函数的最佳方法是什么?
- C++最佳实践 - 函数类型别名 std::function<T> 或 T
- C++ std::string 中是否有任何函数可以计算两个字符串的相同起始字符的总数或任何最佳方法
- 从C 中的函数中动态分配的缓冲区返回的最佳模式是什么?
- 在函数中使用 const 引用参数访问函数中成员的最佳实践 C++.