Разница между шаблонами архитектуры MVC и MVP в Android
Разработчики всегда предпочитают разработку приложения для Android с применением шаблона архитектуры программного обеспечения. Шаблон архитектуры придает модульность файлам проекта и гарантирует, что все коды будут охвачены модульным тестированием. Это облегчает разработчикам задачу по сопровождению программного обеспечения и расширению функций приложения в будущем. MVC (модель - представление - контроллер) и MVP (модель - представление - докладчик) два самые популярные архитектуры Android среди разработчиков.
Шаблон "Модель — Представление — Контроллер" (MVC)
Шаблон MVC предлагает разделить код на 3 компонента. При создании класса / файла приложения разработчик должен разделить его на один из следующих трех уровней:
Модель: этот компонент хранит данные приложения. Он ничего не знает об интерфейсе. Модель отвечает за обработку логики предметной области (бизнес-правила реального мира) и взаимодействие с базой данных и сетевыми уровнями.
Представление: это слой пользовательского интерфейса (пользовательского интерфейса), который содержит компоненты, видимые на экране. Кроме того, он обеспечивает визуализацию данных, хранящихся в модели, и предлагает взаимодействие с пользователем.
Контроллер: этот компонент устанавливает связь между представлением и моделью. Он содержит основную логику приложения, получает информацию о поведении пользователя и обновляет Модель в соответствии с потребностями.
Шаблон "Модель - представление - докладчик" (MVP)
Шаблон MVP преодолевает проблемы MVC и предоставляет простой способ структурировать коды проекта. Причина, по которой MVP получил широкое распространение, заключается в том, что он обеспечивает модульность, тестируемость, а также более чистую и удобную в обслуживании кодовую базу. Он состоит из следующих трех компонентов:
Модель: слой для хранения данных. Он отвечает за обработку логики предметной области (бизнес-правила реального мира) и связь с базой данных и сетевыми уровнями.
Вид: слой UI (пользовательского интерфейса). Он обеспечивает визуализацию данных и отслеживает действия пользователя, чтобы уведомить ведущего.
Presenter: извлекает данные из модели и применяет логику пользовательского интерфейса, чтобы решить, что отображать. Он управляет состоянием представления и выполняет действия в соответствии с уведомлением пользователя о вводе из представления.
Ключевые различия между шаблонами проектирования MVC и MVP
MVC (Контроллер представления модели) | MVP (Презентатор представления модели |
---|---|
Одна из старейших программных архитектур | Разработан как вторая итерация архитектуры программного обеспечения, усовершенствованная от MVC. |
Пользовательский интерфейс (представление) и механизм доступа к данным (модель) тесно связаны. | Вид слабо связан с моделью. |
Уровень контроллера и представления попадает в одну и ту же активность / фрагмент | Связь между View-Presenter и Presenter-Model происходит через интерфейс. |
Вводимые пользователем данные обрабатываются контроллером, который инструктирует модель для дальнейших операций. | Пользовательский ввод обрабатывается View, который инструктирует докладчика вызывать соответствующие функции. |
Между контроллером и представлением существует взаимосвязь «многие к одному», поскольку один контроллер может выбирать разные представления в зависимости от требуемых операций. | Между Presenter и View существует взаимно-однозначная связь, поскольку один класс Presenter управляет одним View одновременно. |
Контроллер несет полную ответственность, поскольку он создает соответствующее представление и взаимодействует с моделью в соответствии с запросом пользователя. | Представление является основным в этой схеме как методы вызова представления Presenter, которые в дальнейшем направляют модель. |
Ограниченная поддержка модульного тестирования | Модульное тестирование широко поддерживается. |