私は可能な限り依存性注入を使用しようとしていますが、短命依存性のようなものに関しては問題があります。抽象ファクトリは「新規」を使用しますか?
たとえば、データベースで見つかったブログのリストを生成したいブログマネージャオブジェクトがあるとします。これを行うためのオプション(私が知る限り):
- 新しいブログ();
- $ this-> loader-> blog();
- ローダーオブジェクトは、データベースオブジェクト、テキストフィルタのようなオブジェクトのさまざまな他のタイプを作成など
- ます$ this-> blogEntryFactory->()作成します。
しかし、強力なカップリングを生成するので、#1は悪いです。 #2は、オブジェクト・ファクトリが以前にインジェクションされていなければならないことを意味するので、それは悪いようです。
#3を使用すると、「新しい」キーワードをblogEntryFactory自体に入れますか?または、ローダーをblogEntryFactoryに挿入してローダーを使用しますか?
私はblogEntryFactory(例えば私はuserFactoryとcommentFactoryを持つことができます)のような多くの異なる工場を持っていれば、これらの異なる工場すべてに "新しい"キーワードを置くように見えます。私は、これは理にかなって願っています
...私はこれが、この特定のブログの例には不要な方法についていくつかの答えを持っていたが、場合によっては、実際には、そこにどこにする必要があります
NOTE抽象ファクトリーパターンを使用してください。これが私が得意とするポイントです。その場合に「新しい」を使用するのか、それとも何か他のことをしますか?
私がこれを正しく、または完全に説明しなかった場合、私に知らせてください。 – johnnietheblack
モデルクラスで依存性注入が使われたことはありません。 'Blog'クラスがいくつかのビジネスロジック(ほとんどモデルではありません)をカプセル化しない限り、カップリングを減らそうとすることはありません。 – millimoose
最初に、コメントをいただきありがとうございます。BlogManagerは "new Blog()"を呼びますか? – johnnietheblack