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


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

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

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

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

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

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

  • Модель


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


  • Вид

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

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

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

  • Контроллер

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


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





















Comments 0


Ну вот отличная статья. Ничего лишнего нету и вполне информационная - у мен даже есть фреймворк типо yii в том году делал. Все подходит

токо не доделал))

на классах оказалась не всем понятно.

19.01.2017 13:26
0
My pageSettingsLogout
Cancel Confirm
100%
Cancel Confirm
Cancel Confirm