CodeCampServer ソース コードには、汎用のStaticFactoryが含まれています。
これは、フレームワークが Dependency Injection でうまく機能するメカニズムの重要な部分であると推測しています。
そのサブクラスは、DefaultUnconfiguredState を使用して静的アクセスを提供します。つまり、依存関係解決メカニズムが動作するものに置き換えることができる Default Unconfigured State への静的アクセスを提供します。
これに関するドキュメントを見つけることができませんでした...
本に良い説明はありますか?(Amazonからの発送待ちです…)
...または、これが何であるか、およびこのパターンを採用するのが賢明かどうかについて、他の誰かが良い解説を提供できますか?
アップデート
Jeffrey Palermo がこの質問に答えたので、MVC2 in Action の (進行中の) 原稿で、このパターン/スタイルが説明され、ドメイン層を無視するためにリポジトリを見つけるために使用されるファクトリを使用して示されていることがわかります。持続性の懸念。(第 23 章を参照)。
デフォルトでは、このファクトリを使用すると例外がスローされます。
「リポジトリを作成する方法の知識は、ファクトリにはありません。このファクトリは、リポジトリを返す機能を表すだけです」
この例では、リポジトリ インターフェイスの具体的な実装を初期化するためのいくつかのメカニズムの 1 つを使用できます。本の例では、簡単にするために IOC コンテナーを使用しないことを選択し、一部の起動ロジックで明示的に提供しています。
「重要なことは、Core プロジェクトも UI プロジェクトも、本質的に純粋にインフラストラクチャであるインフラストラクチャ プロジェクトまたはライブラリを参照してはならないということです。アプリケーションの残りの部分がどのようにデータアクセスが発生しています」
この新しい章のサンプル コードに関する最後の注意点は、Factory が静的ではなくなったことです (少なくとも、外部に面したインターフェイスに関する限り)。
更新 2
Palermo 氏は、Abstract Factory のこの特定のスタイルについてさらにブログを書いています(OrderShipperFactory の実装を参照してください)。
「手動依存性注入」 (ボブおじさん)も検討できます。
更新 3 - 2016 年 3 月
ここに別の例がありますが、Jeffrey はこれがデモ コードであることを明示しており、コメントは、これが Mark Seeman がコンポジション ルートと呼ぶもの(つまり、アプリケーションの起動時)で構成されることを示しています。
これは、Jeffrey の記事「Onion Architecture: Part 4 - After Four Years」で発見しました。