3

私のアプリケーションはDIフレームワークを使用しており、必要に応じて「インターフェイスへのプログラム」の慣例に従います。

依存関係を明示的に確認したいので、コンストラクターインジェクションを使用します。しかし、今では私のフォームクラスのコンストラクターが取るパラメーターが多すぎます(> = 4など)。

質問:UIデザインは通常SRPに準拠していないため、Winformクラスにはnコンストラクターの依存関係がある可能性があります。それらをそのままにして、代わりにプロキシオブジェクトを渡し、サービスロケーターを使用しますか...?また、aop-frameworkが使用されていない場合、すべてのコンストラクターに「アスペクト」(ロガーなど)を挿入しますか?

4

1 に答える 1

4

UI実装がSRPに準拠してはならない理由はありません。MVP、MVC、MVVMなどのパターンを使用する場合、UIクラスの単一の責任は、UIを介してデータをレンダリングおよび収集することです。これは多くの場合、ビューモデルなどのかなり受動的なデータ構造を介して行うのが最適です。

コンストラクターのオーバーインジェクションに関する問題は、AggregateServicesにリファクタリングすることで対処する必要があります。

側面は、Decoratorデザインパターンを適用することで最も適切に対処できます。

于 2011-01-18T15:35:28.997 に答える