1)实用程序类,仅使用静态方法,阻止复制和创建
class myUtils
{
public:
static void utilFunc();
static void utilGreatFunc();
private:
utils() { } // block creation
utils(const utils &) { }
~utils() { }
}
2)使用命名空间
namespace myUtils
{
void utilFunc();
void utilGreatFunc();
}
这样做的最佳方式是什么?我认为命名空间方式,对我来说更清晰,编写更简单。或者也许还有其他更好的设计?
答案 0 :(得分:2)
您永远不会在C ++中使用“带有静态方法的实用程序类”。这是一个Java主义。相反,使用您的第二个解决方案并将函数放在namespace
中。
答案 1 :(得分:1)
几年前,有很多关于辅助类的讨论仍然可以搜索和阅读。我对此的看法是辅助课几乎总是一种难闻的气味(一种强烈的气味)。他们让我们看到程序员不知道在哪里放置他的代码,然后他创建了一个MyBagOfThingsHelper类,它打破了OOP最基本的原则。
可能最重要的是SRP。问问自己:MyBagOfThingsHelper类负责哪个?
它产生的强耦合怎么样?
我知道这既不是你要求的,也不是你想读的,但最好的既不是命名空间也不是类,但要避免它们,避免它们。