できる限り依存性注入を使用しようとしていますが、短命の依存性などに関しては問題があります。
たとえば、データベースで見つかったブログのリストを生成するブログ マネージャー オブジェクトがあるとします。これを行うためのオプションは(私が知る限り)次のとおりです。
- 新しいブログ();
- $this->loader->blog();
- ローダー オブジェクトは、データベース オブジェクト、テキスト フィルターなど、さまざまな種類のオブジェクトを作成します。
- $this->blogEntryFactory->create();
ただし、#1 は強いカップリングを作成するので悪いです。#2は、オブジェクトファクトリを事前に注入する必要があることを意味するため、まだ悪いようです-作成できる他のすべてのオブジェクトを公開します.
番号 3 は問題ないようですが、番号 3 を使用する場合、「新しい」キーワードを blogEntryFactory 自体に入れるか、またはローダーを blogEntryFactory に挿入してローダーを使用するか?
blogEntryFactory のような多くの異なるファクトリがある場合 (たとえば、userFactory と commentFactory を使用できます)、これらすべての異なるファクトリに「new」キーワードを配置すると、依存関係の問題が発生するように見えます。
これが理にかなっていることを願っています...
ノート
この特定のブログの例ではこれが不要であるという回答がいくつかありましたが、実際には、Abstract Factory パターンを使用する必要がある場合があり、それが私が理解しているポイントです。その場合、「新しい」を使用しますか、それとも何か他のことをしますか?