Какой опыт работы с паттернами проектирования

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

Ответ

Работал с основными паттернами проектирования, включая creational, structural, и behavioral.

  • Singleton – для управления глобальными состояниями (например, Retrofit клиент).
object ApiClient {
    val retrofit: Retrofit by lazy { 
        Retrofit.Builder().baseUrl(BASE_URL).build() 
    }
}
  • Observer – через LiveData/Flow для реактивного UI.
  • Adapter – при работе с RecyclerView (например, RecyclerView.Adapter).
  • MVVM/MVI – архитектурные паттерны для разделения логики и UI.

Также применял Factory для создания объектов с разными конфигурациями и Decorator для расширения функциональности (например, кастомные View).

Знаю антипаттерны (например, God Object) и избегаю их.