1

重複の可能性:
静的メソッドと非静的メソッド

良いデザインにはどちらが良いですか

または違いはありますか?それとも開発者次第ですか?

class Foo
{
    int x;

    void add(Foo* f1) //Method 1
    {
        x += f1->x;
    }

    static void add(Foo* f1, Foo* 2) //Method 2
    {
        f1->x = f1->x + f2->x;
    }

    static Foo* add(Foo* f1, Foo* 2) //Method 3
    {
        Foo* foo = new Foo();
        foo->x = f1->x + f2->x;
        return foo;
    }
}
4

4 に答える 4

1

クラスのパブリック機能のみを使用して関数/メソッドを実装できる場合は、非メンバー関数/メソッド(一部の言語では別のクラスの静的メソッド、またはC#またはVBの拡張メソッド)にする必要があります。ネット)。

インスタンスメソッドと同じクラスに混合された静的メソッドは、非常にあいまいで混乱を招く傾向があります。彼らは静的データしか見ることができないので、それはシングルトンの定義を他の何かの定義に混ぜるようなものです。それらを分離する方がはるかに明確です。

于 2009-07-27T06:36:32.710 に答える