Я обычно использую два подхода:
- Извлечение и делегирование бизнес-правил классам домена.
- Разделите представление на логически связанные элементы управления, затем создайте новый интерфейс представления для каждого раздела. Затем вы можете разделить докладчика по тем же принципам. Если используемая платформа поддерживает группы компонентов подчиненной формы (пользовательские элементы управления C #, фреймы Delphi и т. Д.), Это мощный способ создания элементов управления многократного использования.
Обновление
При разделении представлений я обычно начинаю с разделения интерфейса и обеспечения возможности реализации в моей форме нескольких интерфейсов.
public class ComplexForm: Form, ISubView, IOtherSubView
{
...
}
Затем я разделил докладчика на множество созданных мною просмотров.
public class SubViewPresenter
{
private ISubView subView;
...
}
public class OtherSubViewPresenter
{
private IOtherSubView otherSubView;
...
}
Вы можете пойти еще дальше и перенести реализацию ISubView и IOtherSubView в пользовательские элементы управления или оставить все как есть. Если вы используете шаблон пассивного просмотра , это детская игра, так как форма все равно обрабатывает только логику пользовательского интерфейса. Разделяя докладчика, я стараюсь избегать прямого общения между докладчиками. Если какая-либо связь необходима, я пытаюсь сделать это косвенно через доменные объекты.