WinForms でMartin Fowler のプレゼンテーション モデルを使用するアプリケーションがあります(WPF の方が適していますが、それは関係ありません)。そのため、すべてのビューには、UI ロジックとドメイン モデル変換ロジックが存在する場所を表すプレゼンテーション モデルがあります。これは、ビュー内のコントロールが組み込みの .NET WinForms コントロールまたはサードパーティ コントロールである場合に非常にうまく機能します。
DRYプリンシパルをサブスクライブすることで、アプリケーションの複数のビューで使用される一連の独自のカスタム コントロールを提供する、アプリケーションで使用されるクラス ライブラリがあります。これらの各コントロールは、何らかの機能上の関係を持つ小さなコントロールの複合体です。カスタム コントロールには、UI ロジックを制御する独自のプレゼンテーション モデルもあります。
私の質問は、ビューの懸念がカスタム コントロールの基になる UI ロジックに結び付けられないようにアプリケーションを設計するにはどうすればよいかということです。 ここに図があります:
フォームのプレゼンテーション モデルからコントロールのプレゼンテーション モデルへの情報の流れが、ビュー自体を通過する必要はありません。しかし同時に、プレゼンテーション モデルは互いのことを知りません (知る必要もありません)。