私は、サービスロケータパターンを使用するDDDデータレイヤを持つフレームワークを持っています。しかし、現在私はすべての参照を格納するグローバルなstatic ServiceLocator
クラスを使用しています。クラスをIServiceProvider
インターフェイスを実装し、グローバルな静的ServiceLocator
クラスを削除する正しい実装にこれをリファクタリングしたいと思います。サービスロケータパターンとDDD
は今、ほとんどどこでもエンティティクラスを除き、IServiceProvider
インターフェースで既存のクラスを拡張する問題ではありません。問題は、エンティティクラスがIServiceProvider
を実装する必要があることが非常に奇妙だと思うことですが、IoCコンテナを介してリポジトリを解決できるようにサービスプロバイダにアクセスする方法が必要です。
私のエンティティにIServiceProvider
を実装しなくてもサービスロケータパターンを実装するにはどうすればよいでしょうか?
あなたが参照しているパターンへのリンクを投稿することはできますか? – jgauffin
Googleには良い結果がたくさんあります:http://www.google.com/search?q=service%20locator%20design%20pattern http://stefanoricciardi.com/2009/09/25/service-locator-pattern-in-csharpa-simple-example/のシリーズはもう少し詳しく説明しています。私が特に取り除こうとしているのは、シングルトンパターンです。 –
はい、それはゼロになります。このパターンでは、すべてのエンティティがIServiceProviderを公開しません。 – TomTom