Вот мои мысли: Цель использования MVC - разделение проблем и тестируемость логики графического интерфейса. Вид должен уметь работать с разными моделями, а модель должна уметь работать с разными видами.
Я думаю, что класс контроллера должен реализовывать интерфейс по причинам насмешки / тестирования, и представление должно вызывать методы контроллера через этот интерфейс. Но если мы сделаем это, тогда станет трудно обрабатывать элементы представления (текстовые поля, сетки и т. Д.) В контроллере. Таким образом, эти элементы должны быть как-то известны контроллеру.
1. Вы выставляете эти элементы графического интерфейса через интерфейс? Определите классы контроллера как частичные классы, чтобы контроллер мог напрямую обрабатывать элементы графического интерфейса (как насчет интерфейса)? Что вы делаете, чтобы решить эту проблему?
2. По сути, должен ли контроллер реализовывать более одного интерфейса? Один для вида, а другой для уровня модели, чтобы вид / модель могли работать с различными моделями / видами через контроллеры?
3. Модельный слой также должен реализовывать интерфейс для макета / тестирования?
Как мы можем лучше всего достичь наших целей тестирования, слабой связи и SoC? Пожалуйста, поделитесь своим опытом / мыслями.