2

私は同僚が書いたコードをいくつか見直しており、彼の設計に頭を悩ませようとしています。ほとんどが静的ですが、プライベートコンストラクターメソッドを持つクラスがあるようです。クラス内には、同じクラスから新しいオブジェクトを構築するメソッドがあります。これは「大丈夫」な慣行と見なされますか? それとも、この種のクラスのやり方はおかしなことですか?

抽象コードは次のとおりです。

class ABC
{
    static public $PROP1 = 'car';
    static public $PROP2 = 'blue';
    static public $PROP3 = 'apple';

    static public function method1($arg)
    {
        return new ABC($arg, true);
    }

    private function __construct($arg, $isFlag = false)
    {
        //Do stuff
    }
}

助けてくれてありがとう!

4

4 に答える 4

0

状態の大部分を共有するオブジェクトのファミリがある場合、これは適切なアプローチかもしれません。状況を想像することはできませんが、共有状態を独自のオブジェクトに抽象化し、それを新しいインスタンスのそれぞれに注入するだけではうまくいきません。IMHO public statics は、グローバルとほぼ同じくらい邪悪です。

于 2013-06-04T07:09:04.160 に答える