Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
qqc
7 лет назад

Урок 10. MVC (Model-View-Controller)

Сегодня я хочу рассказать вам об одном важном инструменте для фронтенд-разработчика - паттерне Model-View-Controller.

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

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

При этом члена команды не волнует, как другие участники выполняют свою работу, главное, чтобы она выполнялась, и когда понадобится, он сможет это получить от них. Также и объекту в ООП (объектно-ориентированном программировании) не важно, что происходит с другим объектом, пока тот выполняет всё, что должен.

Шаблон MVC - прочно устоявшийся способ распределения обязанностей по объектам. MVC - шаблон высокого уровня: в нем рассматривается архитектура приложения и классифицируются объекты в соответствии с ролями, которые они играют в приложении.

Этот паттерн создает для приложения отдельный мир, заполняемый тремя различными типами объектов, которые и дали ему название:

  • Модель

    "Двигатель" приложения. В объектах типа "модель" содержатся данные и логика.

  • Вид

    Эти объекты отображают элементы на экране и отвечают на действия пользователя. Практически всё, что вы можете видеть - это и есть объекты "вида": к примеру, окно и все элементы управления...

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

  • Так как "вид" ничего не знает о "модели", а "модель" - о "виде", но им всё же необходимо получать друг от друга информацию, необходим третий участник:

  • Контроллер

    Объекты "контроллера" являются посредником между "видами" и "моделями". Они обеспечивают объекты "вида" данными, которые необходимо отобразить (забирая эти данные у "моделей") и обеспечивают "модель" информацией, введенной пользователем" из "вида".

Знаете, моим самым нелюбимым курсом в университете были основы объектно-ориентированного программирования и проектирования. Каждую неделю шла туда, как на каторгу. А нужно было еще несколько раз за семестр выступить с докладом о каком-либо паттерне. И, если бы кто-то мне тогда сказал, что через пару лет я сяду писать об этом статью... да ни за что бы не поверила!

1
1433.508 GOLOS
На Golos с November 2016
Комментарии (1)
Сортировать по:
Сначала старые