2

私はプロジェクトを実装しています。主な目的は、クラスの実装を疎結合にすることです。たとえば、以下では、単純な IOC コンテナーを使用して PageNavigation と AppConfig インスタンスをビュー モデルに挿入しています。

public MyViewModel(IPageNavigationService PageNavigation, IAppConfig AppConfig) {
   //my code
}
  1. コンストラクター経由で渡すことができるインスタンスの数に制限はありますか? 予期しない問題を引き起こす可能性があります。
  2. 渡す必要があるオブジェクト インスタンスが 5 ~ 6 個あるとしたら、コンストラクター以外のオブジェクト インスタンスにアクセスし、物事を疎結合で動的に保ち、すべてのビュー モデルがオブジェクトの既定のインスタンス (シングルトン) を使用する方法はありますか?渡されています。
4

1 に答える 1

1

コンストラクターを介してビューモデル インスタンスに渡すインスタンスの数に制限はありません。ViewModel がコンストラクターを介して適切に動作するために必要なすべての依存関係を渡す必要があります。

オプションの依存関係または異なる実装を提供する依存関係は、PropertyInjection によって渡すことができます。

IOC-Container への参照を取得するコンストラクターを定義して、ViewModel がコンストラクターで必要な依存関係を単独で解決することもできます。しかし、その後、ビューモデルがコンテナに依存することがありますが、これは必要ない場合があります。

public MyViewModel(IocContainer container) {
   // resolve dependencies via the container
}
于 2013-04-17T07:04:24.083 に答える