私は通常2つのアプローチを使用します。
- エキスを、ドメインクラスにビジネスルールを委任します。
- ビューを論理的に関連するコントロールに分割し、各パーティションに新しいビューインターフェイスを作成します。プレゼンターを同じ行に沿って分割することができます。使用しているプラットフォームがサブフォームコンポーネントグループ(C#ユーザーコントロール、Delphiフレームなど)をサポートしている場合、これは再利用可能なコントロールを作成する強力な方法です。
更新
ビューを分割、Iは、典型的には、インターフェイスを分割し、私の形態は、複数のインタフェースを実装有することによって開始します。
public class ComplexForm: Form, ISubView, IOtherSubView
{
...
}
次に、私が作成した多くのビューにプレゼンターを分割しました。
public class SubViewPresenter
{
private ISubView subView;
...
}
public class OtherSubViewPresenter
{
private IOtherSubView otherSubView;
...
}
さらに進んで、ISubViewおよびIOtherSubViewの実装をユーザーコントロールに移動するか、そのまま使用することができます。 パッシブビューパターンを使用している場合、フォームはUIロジックのみを処理するため、これは子供の遊びです。プレゼンターを分割すると、プレゼンター同士の直接コミュニケーションを避けようとしています。通信が必要な場合は、間接的にドメインオブジェクトを使用して通信を試みます。
ニースの答え。私はあなたが次にクロスビュー、それが伴うかもしれないクロスプレゼンターのコミュニケーションをどのように処理するのか興味があります。あなたの意見と発表者はお互いに話しますか? –
この技法のデモンストレーションの例を追加しました。 –
こんにちは、ありがとう、それは素晴らしい答えでした –