Контроллер представления модели
Шаблон разработки Model-View-Controller (MVC) присваивает объекты в приложении одна из трех ролей: модель, представление или контроллер. Образец определяет не только ролевую игру объектов в приложении, это определяет способ, которым объекты связываются друг с другом. Каждый из трех типов объектов разделяется от других абстрактными границами и связывается с объектами других типов через те границы. Набор объектов определенного типа MVC в приложении иногда упоминается как уровень — например, уровень модели.
MVC является центральным к хорошему проекту для приложения Какао. Преимущества принятия этого образца являются многочисленными. Много объектов в этих приложениях имеют тенденцию быть более допускающими повторное использование, и их интерфейсы имеют тенденцию быть лучше определенными. Приложения, имеющие проект MVC, также более легко расширяемы, чем другие приложения. Кроме того, много технологий Какао и архитектуры основываются на MVC и требуют, чтобы Ваши пользовательские объекты играли одну из ролей MVC.
Объекты модели
Объекты модели инкапсулируют данные, определенные для приложения, и определяют логику и вычисление, управляющие и обрабатывающие те данные. Например, объект модели мог бы представлять символ в игре или контакт в адресной книге. Объект модели может иметь к - один и к - много отношений с другими объектами модели, и поэтому иногда уровень модели приложения эффективно является одним или более графами объектов. Большая часть данных, которая является частью постоянного состояния приложения (ли то постоянное состояние сохранено в файлах или базах данных) должна находиться в объектах модели после того, как данные загружаются в приложение. Поскольку объекты модели представляют знания и опыт, связанные с определенной проблемной областью, они могут быть снова использованы в подобных проблемных областях. Идеально, объект модели не должен иметь никакого явного соединения с объектами представления, представляющими его данные и позволяющими пользователям редактировать те данные — это не должно касаться проблем представления и пользовательского интерфейса.
Коммуникация: Пользовательские действия в уровне представления, создающие или изменяющие данные, передаются через объект контроллера и результат в создании или обновлении объекта модели. Когда объект модели изменяется (например, новые данные получены по сетевому соединению), это уведомляет объект контроллера, обновляющий надлежащие объекты представления.
Объекты представления
Объект представления является объектом в приложении, которое видят пользователи. Объект представления знает, как нарисовать себя и может реагировать на пользовательские действия. Главная цель объектов представления состоит в том, чтобы вывести на экран данные от объектов модели приложения и включить редактирование тех данных. Несмотря на это, объекты представления обычно разъединяются от объектов модели в приложении MVC.
Поскольку Вы обычно снова используете и реконфигурировали их, просматриваете объекты, обеспечивают непротиворечивость между приложениями. И UIKit и платформы AppKit обеспечивают наборы классов представления, и Интерфейсный Разработчик предлагает десятки объектов представления в его Библиотеке.
Коммуникация: объекты Представления узнают об изменениях в данных модели через объекты контроллера приложения и передают инициируемые пользователями изменения — например, текст, введенный в текстовом поле — через контроллер, возражает против объектов модели приложения.
Объекты контроллера
Объект контроллера выступает в качестве посредника между один или больше объектов представления приложения и один или больше его объектов модели. Объекты контроллера являются таким образом кабелепроводом, через который объекты представления узнают об изменениях в объектах модели и наоборот. Объекты контроллера могут также выполнить задачи установки и координирования для приложения и управлять жизненными циклами других объектов.
Коммуникация: объект контроллера интерпретирует пользовательские действия, сделанные, в поле зрения возражает и передает новые или измененные данные к уровню модели. Когда объекты модели изменяются, объект контроллера передает это новые данные модели к объектам представления так, чтобы они могли вывести на экран его.