2012-06-07 6 views
0

Множество приложений с графическим интерфейсом можно рассматривать как обработку коллекции объектов (возможно, на нескольких уровнях). Например, список контактов или набор документов. Более того, возможно, существует понятие «текущий объект» (текущий контакт, текущий документ или т. П.) В приложении, а некоторые элементы управления графическим интерфейсом делают действия на этом текущем объекте (а не на других объектах в коллекции). Очевидно, что GUI должен предложить способ выбора другого объекта как «нового текущего», прежде чем применять к нему новые действия. Я думаю, что это довольно общая ситуация, поэтому, возможно, существует довольно общее решение для размещения такой концепции (например, целочисленного индекса в списке) в шаблоне MVC.Где находится концепция «текущего объекта» в MVC?

Я чувствую, что это должно быть вне модели (я могу придумать приложение с несколькими парами View/Controller, разделяющими одну модель, и где каждый вид имеет свое мнение о том, какой объект является выбранным или текущим), но я не смогли подтвердить это «googling».

Я хотел бы знать указатели для авторов, которые обсуждают эту тему. Более того, ваше мнение приветствуется (если такое обсуждение разрешено на этом форуме). Благодарю.

ответ

1

Отказ от ответственности: мой основной язык PHP, и только иметь опыт работы с MVC-связанных моделей в контексте сети (в основном с вариантом model2 этого, из-за очевидных ограничений самой сети), который сформировал my understanding структуры MVC.

Я вижу концепцию Current Object как аспект состояния Модель слоя. Текущий объект не должен напрямую воздействовать на другие части триады MVC. Как контроллер (ы), так и вид (ы) имеют доступ к нему только через более высокую/публичную часть (я имею тенденцию вызывать эту часть «Службы», но это плохое имя) уровня модели.

Это позволяет свободно изменять, манипулировать и обменивать объекты, которые вы отметили как «текущие». В то же время другие части MVC напрямую не затрагиваются.

Что касается материалов по теме, я действительно не видел статей или книг, посвященных исключительно этой теме. Лучшее, что я могу предложить, это снова прочитать Patterns of Enterprise Application Architecture ..

+0

Спасибо за ваш добрый ответ, который я не читал до нескольких минут назад. Через неделю без ответа я подумал, что мой вопрос не достаточно интересен, чтобы получить ответ. Сожалею. Я ценю ваше мнение, хотя я не совсем понимаю его, может быть, потому что модель 2 не является контекстом, к которому я привык. Еще раз спасибо. –

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