現在、単一責任の原則を満たすために、アプリケーションを複数のクラスにリファクタリングしています。しかし、元のマンモスクラスの多くのメソッドは、ビジネスロジックのための1つの共通の "メタデータ"オブジェクト(クラスプロパティとしてバインドされています)を使用します。例えば他の多くのクラスで共通のオブジェクトが共有されています
:(ケースケースによって基づいて、クラスの特定のメソッドにこのオブジェクトを渡す
- :
if($this->metadata->applyTracking) { // perform tracking logic }
私は、これらのクラスを分離しています、私は2つのオプションを検討しています多くの場合起こりうる)。
- このオブジェクトをクラスプロパティとして追加する(多くのクラスでこのプロパティが注入されます)。
- シングルトン(それはグローバルと同じフォールバックを共有するかもしれないので、私はこのアプローチを警戒しています)
取るパス上の任意のアドバイスなどのオブジェクトを作りますか?
ありがとう、これは正しい方向に私を指摘します。 – jexx2345