属性の依存関係の挿入: 課題とより良い解決策
共通言語ランタイム (CLR) が依存関係のインスタンス化を管理するため、依存関係を属性に直接挿入することは大きな困難を伴います。 これはプロパティの注入にも当てはまり、密結合が生じてコードが脆弱になります。
このような方法では、依存関係注入コンテナーの検証が妨げられ、フレームワークのキャッシュ メカニズムが複雑になり、依存関係が緊密に結合してバグが発生する可能性が高まります。
したがって、属性内での依存関係の注入は避けることが最善です。
優れた代替案:
パッシブ属性 (データと動作の分離):
ハンブルオブジェクト (ロジック抽出):
推奨されるアプローチ:
オプション 1 のデータと動作を分離すると、一般に、よりクリーンなデザインとより幅広い適用可能性が得られます。 ただし、オプション 2 は、特定の状況ではより実用的な解決策を提供します。
以上が依存関係を属性に注入する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。