最近、私は自分自身がクラスの依存関係をあまりにも重視して世話するのではなく、コンストラクタで渡すことに気付いていますが、私は常にDIコンテナを渡してプライベート属性にしておきます。このようにして、私のクラスはあまり明確な依存関係を持たないでしょう。必要なときにコンテナからすべてを取得します。DIコンテナを(ほぼ)各クラスに注入するアンチパターンですか?
何とか(コンテナにアクセスすることによって発生するオーバーヘッドを除いて)私はこのソリューションについて悪い気持ちを持っていますが、あまりにも多くの欠点を考えることはできません。たぶん、依存関係の定義が緩いと、クラスの移植性が低下する可能性があります。リファクタリングすると驚くことはありますか?
あなたはこれについてどう思いますか?
コンテナをクラスに注入することは、サービス・ロケータのパターンの一種に過ぎず、静的なサービス・ロケータ・インタンスを呼び出すことと(ほとんど)悪影響を及ぼします。 – Steven
も参照してください。http://stackoverflow.com/questions/23931321/why-injecting-whole-service-container-to-another-service-is-almost-always-a-ba –