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主義です。代わりに、2番目のソリューションを使用して、関数をに入れますnamespace

于 2013-01-15T08:59:24.960 に答える
1

数年前、まだ検索して読むことができるヘルパー クラスについて多くの議論がありました。これについての私の意見は、ほとんどの場合、ヘルパー クラスは悪臭を放つ (強いもの) ということです。彼らは、プログラマーが自分のコードをどこに置くべきかを知らず、OOP の最も基本的な原則を破る MyBagOfThingsHelper クラスを作成したことを明らかにしました。

おそらく、最も重要なのは SRP です。その MyBagOfThingsHelper クラスの責任はどれですか?

それが生み出す強い結合はどうですか?

これはあなたが求めたものでも読みたいものでもないことは知っていますが、名前空間でもクラスでもなく、避けてください。

于 2013-01-17T00:52:45.537 に答える