Объясняется с помощью иллюстраций

Исходя из фона MVC (Model View Controller), я изо всех сил пытался понять архитектурный шаблон MVVM (Model View View-Model). Какие обязанности должно быть у каждого представления? Какова цель View-Model? Куда делась вся бизнес-логика?

Я собираюсь показать вам аналогию, которая помогла мне лучше применить шаблон MVVM к моим проектам.

Аналогия с поп-звездой

Эта аналогия имеет место в мире развлечений.

Поп-звезда (просмотреть)

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

Обязанности:

  • Устрой отличное шоу и выгляди самой красивой для своих поклонников
  • Пойте песни
  • Взаимодействие с фанатами (обработка пользовательского ввода)

Ее поклонники (ввод пользователя)

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

Обязанности:

  • Кричите, когда они слышат отличную песню, и пишите письма поклонникам Pop Star.

Ее менеджер (View-Model)

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

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

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

Обязанности:

  • Предоставьте поп-звезде всю необходимую информацию (что надеть, какую песню спеть, как отвечать на интервью).
  • Получите отзывы фанатов и сообщите поп-звезде, как реагировать
  • Делегировать обязанности, которые ему не по силам (Маркетинговое агентство, PR-агентство, Продюсирование звукозаписи и т. д.)

Песня (модель)

Поп-звезда получает песни для исполнения от своего менеджера, который получает песни от продюсера звукозаписи.

Обязанности:

  • Быть песней (которая включает в себя название, слова, ноты и т. д.)

Продюсер звукозаписи (услуги)

Они производят песни. Они содержат всю бизнес-логику, которая не требуется менеджеру.

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

Менеджер идет к этим ребятам и просит у них жизнерадостную поп-песню.

Обязанности:

  • Создавайте песни

На что следует обратить внимание

  • Менеджер (модель представления) может управлять несколькими поп-звездами (представлениями).
  • У поп-звезды (представления) есть только один менеджер (представление-модель).
  • Продюсер звукозаписи (услуга) полностью независим.

Спасибо за прочтение. Я надеюсь, что эта аналогия была чем-то полезна.