Прежде чем приступить к разработке приложения на основе MVC.Прежде всего, нам нужно знать, что представляют собой эти различные компоненты и что MVC помогает нам достичь?
Почему мы используем MVC? (Model-View-Controller), потому что он помогает нам в:
Разделение ответвлений также приводит к возможности повторного использования
Минимизируя зависимости, вы можете взять уже созданную модель или класс представления и использовать ее в другом месте
Подумайте, как написать меньше кода
При разработке приложения на основе MVC мы должны сосредоточиться на вышеуказанных моментах.Позволяет связать это приложение «Словарь» со словарем реального мира.
Словарь состоит из слов, их значения, произношения, примеров, использования, антонимов, синонимов, индексов и другой подобной информации.Когда пользователь хочет найти определенное слово, он будет использовать слово с верхним полем для быстрого поиска.Как только он найдет нужную страницу, он перейдет к этому слову и увидит его значение, использование или другую необходимую информацию.
Часть модели:
Позволяет провести аналогию между вашим приложениеми то, что я описал выше.
В вашем приложении у вас будет класс: «Словарь», который будет представлять собой словарь реального мира.Этот словарь состоит из слов, их значения, произношения, использования и другой информации.Поэтому нам понадобится массив слов, который будет содержать объект «Слово».Класс «Слово» будет иметь всю информацию, которую мы хотим предоставить для конкретного слова.Вы также можете предоставить другие атрибуты, которые, по вашему мнению, принадлежат словарю, и добавить их в него (здесь речь идет только о контенте)
Теперь нам нужно подумать о различных операциях, которые нужно выполнитьв этом словаре.Самая основная операция - создание словаря и доступ к нему.
У нас будет класс DictionaryCreator, который будет добавлять все слова, которые будет иметь наш словарь.Так что это еще один класс DictionaryCreator.Или мы можем поместить эту логику создания в методы словаря 'init'.Но будет полезно иметь этот класс, это включит функции добавления слов в словаре.
Как только DictionaryCreator создаст словарь, пользователь будет готов использовать его.Таким образом, нам нужно будет предоставить различные операции, которые пользователь может выполнять над «Словарём» в качестве своих методов.В нашем случае мы можем считать, что пользователь перегружен контроллером, который фактически контролируется реальным пользователем.
Приведенная выше методика поможет вам создать компонент, который выполняет только свою ответственностьи может быть повторно использован в другом приложении или расширен для будущего использования.* Всегда помните, что модель - это наиболее многократно используемый компонент дизайна MVC.Поэтому, когда вы сомневаетесь в модели, просто напомните слова «модель должна быть многоразовой».(Не известно о представлениях или контроллерах)
Итак, мы только что закончили модель части приложения.
Просмотр части:
Это зависит от васкакой интерфейс вы хотите предоставить пользователю.Но давайте снова рассмотрим реальный мир словаря.Содержимое (информация) словаря реального мира распространяется на несколько страниц.Это представление помогает нам просматривать / осуществлять доступ / помечать / добавлять закладки в словарь (помните, что здесь пользователь выполняет все операции, а не страницы и словарь).На страницах вверху или внизу легко найти нужное слово, а в нижней части - некоторые указания по произношению
В вашем приложении вы сказали: «Я хочу, чтобы я мог нажать кнопку и чтобы на ярлыке отображалось слово на одной стороне экрана, а на другой ярлыке отображался список связанных слов на другой стороне».. "
Здесь у нас снова есть несколько вариантов реализации, вы можете создать представление с помощью Interface Builder и соединить их с вашим контроллером. Но опять же, этот контроллер и View будут тесно связаны, и когда мы захотим использовать подобный интерфейс где-то еще, мы не сможем это сделать. Поэтому для повторного использования мы создадим другой класс UIView и создадим его с новым View XIB и загрузим этот кончик. Так что в будущем, если вам потребуется подобный вид, вы можете легко использовать его повторно (например, Cocoa-Touch предоставляет нам UIView, UIButton и т. Д.).
* Вид также имеет тенденцию быть повторно используемым компонентом в MVC.
(Не знает о контроллерах, может знать о соответствующих объектах модели)
Часть контроллера:
Теперь мы создали вид и модель, но как они будут общаться? Контроллер поможет им в этом. Контроллер:
Knows about model and view objects
The brains of the operation
Manages relationships and data flow
Typically app-specific, so rarely reusable
* Точки и определения, которые я взял из Лекции Стэнфордского университета [CS193P - Лекция 6
Разработка приложений для iPhone
Разработка приложений iPhone Модель-представление-контроллер (почему и как?) View Controllers]
Обновление:
Недавно я наткнулся на еще одну хорошую лекцию о MVC. Это объясняет эту концепцию дизайна гораздо лучшими примерами. Он доступен на iTunes U или вы можете сразу перейти к первой лекции Пола Хегарти () для iPad и iPhone Application Development (SD) .