Хорошо, да, да, что действительно нарушает закон Деметры, который в основном говорит, что интерфейс с объектом не должен раскрывать реализацию объекта. Но потом, второй дает чертовски много подсказок и к реализации.
Я думаю, что пришло время спросить, есть ли у вас правильный интерфейс в целом. Что являются этими текстовыми полями? Кто устанавливает их в поле зрения? Разве представление не должно запрашивать у Модели данные, а не наоборот?
Может быть, вам нужен шаблон Observer - Модель ведет список заинтересованных сторон и уведомляет их, когда изменяется ее внутреннее состояние.
Ах, , что Пассивный просмотр. Давно не смотрел на это. По сути, я вижу две части: одна из них заключается в том, что, заставляя контроллер (а не модель) управлять всеми обновлениями, для (я полагаю) эффективности он предоставляет специальные методы полей для обновления этих полей. Это нарушает Закон Деметры, который, в конце концов, является лишь «законом» в некотором метафорическом смысле, как Закон Мерфи. Обычно это хорошая идея. В этом случае я бы переделал представление и использовал его в качестве фасада для переноса обновлений в отдельное поле.
Вам не нужен шаблон Observer, потому что теперь у вас есть контроллер, который делает все обновления. Это добавляет некоторую сложность и склонность к ошибкам в общем коде, потому что теперь вам нужно написать контроллер для параллельных обновлений.