Было бы более разумно сгруппировать код, связанный с одним объектом. Таким образом, в этом случае, если представления представляют собой конкретные группы связанного кода, докладчик также будет имитировать эти группировки. Чтобы иметь «глобального» презентатора для разных представлений, нужно сгруппировать несвязанный код в один объект. Это определенно раздуло бы интерфейс и для докладчика. Проверьте принцип единоличной ответственности .
Теперь у вас может быть один класс Presenter Manager, который, возможно, предоставит вам доступ к каждому интерфейсу презентатора, , как в случае принципа разделения интерфейсов , с помощью любого наследования (есть глобальный конкретный презентатор, который реализует множество интерфейсов презентатора). ... который как бы нарушает единственную ответственность) или агрегацию (наличие отдельных презентаторов для каждого интерфейса и функций get ... таким образом, глобальный интерфейс будет функциями get) или их комбинацию (глобальный презентатор является своего рода адаптером).
Я думаю, что лучшим решением было бы просто иметь 30 разных докладчиков.