Контроллер просмотра модели внутри контроллера просмотра модели

61
4

Недавно я завершил личный проект, и один из методов, который я использовал, чтобы сломать интерфейс, состоял в том, чтобы иметь один основной контроллер представления модели, который обрабатывал большую часть основной логики приложения. Тогда, по большей части, было много общих элементов управления, которые позволяют использовать Slider и текстовое поле, которые были связаны вместе с одним значением float. Они сами будут составлять еще один (Model View Controller), с которым взаимодействует родительский контроллер представления модели. Хотя общение все равно было бы вниз по холму, никогда не зацикливая на себе петлю.


Итак, в общем случае контроллер будет взаимодействовать с контроллером Slider и textField, которые были связаны вместе. Но оба они не имели прямого доступа друг к другу, поэтому, когда событие произошло для контроллера поля Text и слайдера, оно будет обрабатываться родительским контроллером, который будет обрабатывать большую часть логического потока программы, а затем до контроллер ползунка и текстовое поле.


Это отлично поработало и получило много замечательных отзывов от пользователей, которые использовали приложение, и любили гибкие возможности, которые он приносил с помощью очень логичных корректирующих элементов управления, которые им не нужно было думать.


Хотя разработчик во мне задает вопрос о прагматизме и чистоте дизайна. Дизайн системы был подход города, который я взял из этой публикации в Adobe:


Adobe, общие алгоритмы
http://www.youtube.com/watch?v=4moyKUHApq4


и, как правило, использование MVC в качестве объектов внутри объектов отражало это вместо одного глобального контроллера MVC.


И предложения, которые я мог бы улучшить в следующем проекте, или я должен снова использовать этот же подход?

спросил(а) 2021-01-19T19:10:41+03:00 2 месяца, 3 недели назад
1
Решение
61

Этот шаблон имеет имя на самом деле: Presentation-Abstraction-Control. Не знаю, насколько это полезно для вас, но я думал, что должен дать вам ссылку на wiki.

ответил(а) 2021-01-19T19:10:41+03:00 2 месяца, 3 недели назад
44

Это лучший способ до сих пор (т.е. пока кто-то не придумает лучшего): создайте множество небольших экосистемы MVC, которые мало знают друг о друге.

По моему опыту, самая большая проблема, с которой вы можете столкнуться в этом сценарии, заключается в том, что элементы пользовательского интерфейса не посылают правильные сигналы для ваших контроллеров. Но как общая концепция, это лучшее, что мы получили.

ответил(а) 2021-01-19T19:10:41+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема