1

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();
}

这样做的最好方法是什么?我想命名空间的方式,对我来说更清晰,写起来也更简单。或者也许还有其他更好的设计?

4

2 回答 2

2

您永远不会在 C++ 中使用“具有静态方法的实用程序类”。那是Java主义。相反,请使用您的第二个解决方案并将函数放在namespace.

于 2013-01-15T08:59:24.960 回答
1

几年前有很多关于帮助类的讨论,你仍然可以搜索和阅读。我对此的看法是帮助类几乎总是一种难闻的气味(一种强烈的气味)。他们让我们看到程序员不知道将他的代码放在哪里,然后他创建了一个 MyBagOfThingsHelper 类,它打破了 OOP 的最基本原则。

可能,最重要的是 SRP。问问自己:MyBagOfThingsHelper 类的职责是什么?

它产生的强耦合又如何呢?

我知道这既不是您所要求的,也不是您想要阅读的,但最好的既不是命名空间也不是类,而是避免它们,避免它们。

于 2013-01-17T00:52:45.537 回答