У способа, которым я справлюсь, есть функция интерфейса MainPresenter, которая позволяет мне создавать FooPresenter (а также Foo2Presenter и т. Д.). MainPresenter содержит всю информацию для правильной настройки дочерней формы родителя MDI. Следовательно, почему имеет смысл иметь это там.
Альтернативой является наличие класса AppPresenters, который имеет MainPresenter и FooPresenter в качестве свойств или функций. Здесь AppPresenters содержат классы презентаторов, а также берут на себя ответственность за связывание форм для получения правильного приложения MDI. Следствием этого подхода является тот факт, что приложение является главной / родительской формой с кучей дочерних форм, что не отражается в дизайне ваших интерфейсов.
Различия между двумя подходами, на мой взгляд, минимальны. Оба могут быть легко адаптированы к другому стилю пользовательского интерфейса. Так что иди, что имеет смысл для вас и вашего приложения.