2010-12-12 9 views
1

私は3層のアプリケーションを持っています。フロント、ビジネス、データ層 私はMicrosoft Unityを依存関係コンテナとして使用しました。 私はRhinoMockでNUnitを使ってアプリケーションをテストしました。共通サービスロケータライブラリが必要なのはなぜですか?

私は共通のサービスロケータ層を紹介するために多くの記事を読んでいます。
** 共通サービスロケータはどのScneriosに導入する必要がありますか?

  1. 上記のアーキテクチャでは、プロジェクトでどのレイヤーが置き換えられますか?
  2. 私のプロジェクトではどのレイヤーと通信しますか?

  3. は、ビジネスやフロント層に伝達するだけでWCF Webサービスプロジェクトの共通サービスロケータ層ますか?**

答えて

1

共通サービスロケータ ライブラリが必要なのはなぜですか?

私たちは本当にそれを必要としません。より良い分離を提供します。これは、クライアントがサービスがどこにあるか、どのように実装されているかを知る必要がないように、主にDependency injectionの先頭にある抽象です。

通常、これはクライアントコードになります。たとえば、プロキシを作成してサービスを呼び出すクライアントは、プロキシを作成する必要はなく、サービスロケータからプロキシを要求します。

1

私はあなたが依存関係(すなわちサービス)を配置する一般的な方法に言及していると思いますしたがって、あなたの例ではUnityを置き換えるでしょう(あるいは、Unityが共通インタフェースを実装するだけかもしれません)。

彼らは我々はすでに機能(ユニティ、Ninjectなど)を達成ライブラリの多くを持っているサービス/プラグインなど

を識別する一般的な方法を共有するようなフレームワークのすべての種類がもう少し簡単に一緒に働くだろう。この方法フレームワーク(例えば、MVC)があるインタフェースのインスタンスを取得したい場合は、使用するライブラリがであることが必要です。また、共通のインタフェースを共有しないため、これは困難です。共通のインタフェースを使用すると、MVCにオブジェクトの取得先を指定することができます。

関連する問題