Соберите проект #
Выберите интересующую вас услугу
Меня интересует...

    Что такое MVC: базовые концепции и пример приложения

    Что такое MVC: базовые концепции и пример приложения
    4 мин.

      Упоминания о концепции MVC встречаются в специальной литературе и в профессиональных сообществах. В статье разберемся, что собой представляет MVC, и почему эта модель так популярна.

      Что такое модель MVC

      Идеология MVC основывается на наличии в приложении, так называемых, слабо зависимых блоков. Это обусловлено стремлением поддержки определённой абстрактности, что хорошо для надёжности всего программного комплекса. Например, допустимо провести изменения в блоке Model, которые не затронут View и Controller, что продолжат работать в прежнем режиме.

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

      В программном обеспечении это может выразиться изменением алгоритма поиска необходимой информации, или какой-то другой логики, вне потребности вносить изменения в интерфейс или характера построения запросов к базе данных. Конечные пользователи увидят точно такие же экраны, функциональность приложения сохранит свои особенности.

      С точки зрения командной разработки MVC так же важен. Он даёт возможность разработчикам сосредотачивать свои усилия на разных блоках программного кода и не создавать помех друг для друга.

      Концепция MVC стала известной задолго до появления интернета. Её презентовал профессиональному сообществу Трюгве Реенскауг, работающий на компанию Xerox PARC. Это было в 1978 году, когда компьютеры имели гигантские габариты, а программисты считались представителями редкой специализации. Однако уже в то время разработчики начинали задумывать о путях решения проблемы построения наиболее рационального управления компьютерной системой.

      Что такое MVC

      MVC — это архитектурный паттерн, призванный выделить в приложении три компонента: модель, представление и контроллер. Рассмотрим причины появления такого логического разделения и то, что получается в результате практического применения концепции.

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

      Model — хранит данные и находящуюся в связи с ними логику, формирует структуру приложения. Так, если разрабатывается программа для списка дел, то цель модели сводится к тому, чтобы по шаблону устанавливать наиболее значимые компоненты. В данном случае это «задача» и «список».

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

      Controller — блок, связывающий Model и View. Он обрабатывает данные, полученные от пользователя, интерпретирует их и порождает команды, обеспечивающие внесение изменений. К примеру, в приложении со списком дел контроллер устанавливал бы, как пользователь добавляет к списку новую задачу или вносит отметки выполненных, расставляет приоритеты и так далее.

      Расшифровка паттерна MVC

      MVC — это шаблон программирования, выделяющий в логике приложения три блока:

      • Model — собирает данные от контроллера, обрабатывает их и передаёт представлению View.
      • View — получает данные от Model и отображает их пользователю.
      • Controller — собирает результат действий пользователя, проверяет и отправляет в Model.

      Ключевые аспекты концепции MVC

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

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

      Как работает MVC

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

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

      После завершения работы повара-модели, результат будет передан в представление — вновь кассиру, а тот передаст готовое блюдо посетителю-пользователю.

      Если рассматривать это в качестве компонентов приложения, то получится такая структура:

      • Вид — пользовательский интерфейс.
      • Контроллер — обработчик событий, которые инициируются пользователем с помощью заполнения экранной формы, нажатия на кнопку и так далее.
      • Модель — метод, запускаемый обработчиком событий и выполняющий необходимые операции (обращение к СУБД, осуществление вычислений).

      Необходимо понимать, что практическая реализация паттерна MVC может иметь отличия, обусловленные особенностью имеющихся задач. Так, в web-разработке Model и View находятся во взаимодействии посредством блока Controller. Такая архитектура рассмотрена в примере с кассиром, поваром и посетителями. Возможны и ситуации, когда непосредственно Model передает в View инструкции о том, что требуется что-то изменить.

      Зачем программистам нужен MVC

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

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

      У программистов-одиночек MVC может вызвать интерес тем, что они получат возможность организовать работу так, чтобы за один заход создавать один компонент.

      Заключение

      Концепция MVC может произвести обманчивое впечатление. Многим новичкам она кажется чрезмерно сложной, но усилия, направленные на изучение данного подхода, внесут ясность. Вполне закономерно, что многие программисты выбирают именно его. Особенно выигрывает он по отношению к традиционному методу разработки, связанному с тем, что за всё отвечают обработчики событий. Неслучайно концепция используется в наиболее эффективно используемых платформах, к примеру, такой как Core MVC.

      Продолжая пользоваться сайтом, я даю согласие на использование файлов cookie.