Объясняется с помощью иллюстраций
Исходя из фона MVC (Model View Controller), я изо всех сил пытался понять архитектурный шаблон MVVM (Model View View-Model). Какие обязанности должно быть у каждого представления? Какова цель View-Model? Куда делась вся бизнес-логика?
Я собираюсь показать вам аналогию, которая помогла мне лучше применить шаблон MVVM к моим проектам.
Аналогия с поп-звездой
Эта аналогия имеет место в мире развлечений.
Поп-звезда (просмотреть)
Ее обязанность состоит в том, чтобы выйти из себя. Она лицо всей операции. Ей нужно выглядеть самой красивой, ей нужно общаться со своими поклонниками и ей нужно устроить отличное шоу.
Обязанности:
- Устрой отличное шоу и выгляди самой красивой для своих поклонников
- Пойте песни
- Взаимодействие с фанатами (обработка пользовательского ввода)
Ее поклонники (ввод пользователя)
С их точки зрения, Поп-звезда — единственное, что существует; они не знают и не заботятся о том, что происходит за операцией. Они кричат, когда она поет классную песню, а некоторые даже пишут ей письма от поклонников.
Обязанности:
- Кричите, когда они слышат отличную песню, и пишите письма поклонникам Pop Star.
Ее менеджер (View-Model)
У него много забот, даже если его почти не видно, он должен постоянно информировать поп-звезду, где и когда следующий тур, что она наденет, как ей следует отвечать на определенные вопросы интервью и какую песню выбрать. петь.
Большая часть этой информации не предоставляется самим менеджером, он делегирует ее, общаясь с внешним миром (маркетинговое агентство, PR-агентство, продюсер звукозаписи и т. д.), а получив информацию обратно, разговаривает с поп-звездой, чтобы она могла быть в курсе последней информации.
Менеджер очень внимательно относится к любым отзывам болельщиков. Если фанаты недовольны, он всегда точно знает, как должна реагировать поп-звезда.
Обязанности:
- Предоставьте поп-звезде всю необходимую информацию (что надеть, какую песню спеть, как отвечать на интервью).
- Получите отзывы фанатов и сообщите поп-звезде, как реагировать
- Делегировать обязанности, которые ему не по силам (Маркетинговое агентство, PR-агентство, Продюсирование звукозаписи и т. д.)
Песня (модель)
Поп-звезда получает песни для исполнения от своего менеджера, который получает песни от продюсера звукозаписи.
Обязанности:
- Быть песней (которая включает в себя название, слова, ноты и т. д.)
Продюсер звукозаписи (услуги)
Они производят песни. Они содержат всю бизнес-логику, которая не требуется менеджеру.
Они не пишут песни исключительно для поп-звезды, они могут создавать песни для кого угодно. Им просто нужны определенные параметры, чтобы точно знать, в каком контексте должна создаваться песня.
Менеджер идет к этим ребятам и просит у них жизнерадостную поп-песню.
Обязанности:
- Создавайте песни
На что следует обратить внимание
- Менеджер (модель представления) может управлять несколькими поп-звездами (представлениями).
- У поп-звезды (представления) есть только один менеджер (представление-модель).
- Продюсер звукозаписи (услуга) полностью независим.
Спасибо за прочтение. Я надеюсь, что эта аналогия была чем-то полезна.