Основная причина заключается в возможности повторного использования кода.Если вы когда-нибудь собираетесь написать одну программу в своей профессиональной жизни, то, возможно, это не имеет значения.Если вы планируете сделать карьеру в этом, иметь многоразовые части ценным.Хорошо продуманные классы моделей, контроллеров и представлений очень легко добавить в другие программы.Я делаю это все время.
Рассмотрим UITableViewController
, который является контроллером.Теперь представьте, был ли он предназначен исключительно для обработки музыкальных треков (модель), и вам нужно было создать совершенно другой класс управления таблицами, когда вы хотите обрабатывать что-то еще.Избегание этого кошмара - вот почему MVC интенсивно используется в Какао.
Существуют и другие способы разделения вещей.Некоторые языки делятся на подклассы в большей степени, чем на делегирование.Но в Какао основным средством разделения программ является MVC, и он работает очень хорошо.
РЕДАКТИРОВАТЬ: Еще несколько причин из мира разработки коммерческих приложений.
Обработка памяти в MVC намного проще.Вы можете удерживать объекты вашей модели и выбрасывать ваши объекты вида (и многие из ваших объектов контроллера), когда они выходят за пределы экрана.
Проще сериализовать объекты модели, которые не обернутыс контроллерами и представлениями, и гораздо проще отображать одни и те же данные несколькими способами.Даже в «простом» текстовом редакторе вы можете захотеть сделать разделенный экран или иметь несколько окон, показывающих один и тот же документ.В MVC это очень просто.
Если вам не нужна гибкость сейчас или в будущем, вам не нужно много архитектуры.Но большинство реальных проектов не так просты.MVC вырос из опыта Xerox в написании больших программ и трудностей, с которыми сталкивались все вместе.
РЕДАКТИРОВАТЬ 2: Я смотрел на ваше предыдущее редактирование: «Это кажется страннымчто в простом калькуляторе, согласно концепции MVC, должен быть и контроллер, и представление для его настроек (например, настроек по умолчанию или чего-то подобного) ».
Именно в этом причина MVC.Казалось бы, сумасшествие - перекодировать все, что требуется для сохранения пользовательских настроек специально для приложения «Калькулятор»Вам нужно общее «пожалуйста, сохраните эти пользовательские настройки», которое полностью отделено от пользовательского интерфейса и которое вы можете использовать повторно.В OS X он называется NSUserDefaults
, а приложение Calculator
сохраняет свою конфигурацию именно таким образом.