2009-10-15 5 views
1

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

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

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

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

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

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

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

ответ

0

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

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

1

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

+0

Спасибо, я даже не знал, что существовало до сих пор. Я даже прочитал книгу шаблонов дизайна, и она не упомянула об этом. – Chad

Смежные вопросы