MVC (Model-View-Controller): Разделяет приложение на три взаимосвязанных части. Модель (данные), View (интерфейс пользователя) и Controller (обработка пользовательских действий). В Android часто View - это Activity/Fragment, Controller - также Activity/Fragment, а Model - бизнес-логика и данные.
MVP (Model-View-Presenter): Улучшение MVC. View не знает о Model, аPresenter является посредником между View и Model. Presenter содержит логику отображения данных из Model на View и обработки действий пользователя.
MVVM (Model-View-ViewModel): View связана с ViewModel через Data Binding. ViewModel содержит логику презентации данных и не держит ссылки на View. View реагирует на изменения в ViewModel.
Другие паттерны и концепции:
Repository Pattern: Абстрагирует источник данных (локальная база данных, сеть, кэш) от бизнес-логики.
Dependency Injection (DI): Внедряет зависимости (объекты, от которых зависит класс) извне, а не создает их внутри класса. Популярные библиотеки: Dagger, Hilt, Koin.
Clean Architecture: Разделение на слои (Domain, Data, Presentation) с строгими зависимостями (внутренние слои не знают о внешних).
MVI (Model-View-Intent): Основан на однонаправленном потоке данных. View отправляет Intent (намерение), ViewModel обрабатывает его, обновляет State (состояние), которое затем отображается на View.
State Management: Управление состоянием пользовательского интерфейса (например, с помощью LiveData, StateFlow).
Observer Pattern: Объект (Subject) уведомляет о своих изменениях другие объекты (Observers), которые подписались на уведомления. Используется в LiveData, Flow.