Какие знаешь паттерны Android

«Какие знаешь паттерны Android» — вопрос из категории Паттерны, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android часто используются следующие паттерны:

  1. MVVM (Model-View-ViewModel) – разделение логики и UI. ViewModel хранит данные, LiveData/Flow обеспечивают реактивность.
class MyViewModel : ViewModel() {  
    private val _data = MutableLiveData<String>()  
    val data: LiveData<String> = _data  
}
  1. Repository – абстракция над источниками данных (API, БД).
class UserRepository {  
    suspend fun getUsers(): List<User> {  
        // Fetch from API/DB  
    }  
}
  1. Singleton (через object или DI) – единый экземпляр класса.
object RetrofitClient {  
    val instance: Retrofit = Retrofit.Builder()...  
}
  1. Adapter (RecyclerView.Adapter) – связывает данные и ViewHolder.

  2. Observer (LiveData, Flow) – уведомляет об изменениях данных.

  3. Dependency Injection (Hilt/Dagger) – управление зависимостями.

Также применяются Factory, Builder (AlertDialog), Decorator (Views), Strategy (разные алгоритмы).