$ thisを静的メソッドのタイトな結合に渡していますか?

ここに簡単な例があります:

class Class_A {   
    protected $_property;

    public function method()
    {
        Class_B::method($this);
    }

    public function getProperty()
    {
        return $this->_property;
    }
}

class Class_B {
    public static function method(Class_A $classA)
    {
        $classA->getProperty();
    }
}

$classA = new ClassA();
$classA->method();

$ this を別のクラスのメソッドのパラメータとして渡しても大丈夫ですか?それとも、常にタイトなカップリングになるのでしょうか?静的メソッド呼び出しの代わりにファクトリパターンを使用して、別の同様の例を提示することもできます。

1

2 答え

それは Class_A Class_B の正確な動作に依存しますが、一般的に Class_A そのためのヒントを入力します。 Class_B getProperty()など)で必要とされる Class_A のメソッドがインタフェースに表示されます。次に、 Class_A を別のクラスに切り替えたい場合は、同じインターフェースを実装するだけです。

1
追加された
ありがとうございました。今私は密接に結びつけるような正確な行動を考えようとしています
追加された 著者 Dan,

もう一度、それは問題のクラスの振る舞いに依存しますが、 Class_B の静的メソッドも使用した、例えば Class_C Class_A Class_C Class_B を拡張します。詳細は、PHP オブジェクト継承ページを参照してください。

0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com