Что такое Chain

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

Ответ

Chain (цепочка) — это паттерн проектирования, позволяющий передавать запросы последовательно через цепочку обработчиков. Каждый обработчик решает, может ли он обработать запрос, и либо обрабатывает его, либо передает следующему.

В Android часто используется для обработки событий (например, touch events) или в цепочках ответственности (OkHttp Interceptors).

Пример с OkHttp:

val client = OkHttpClient.Builder()
    .addInterceptor(LoggingInterceptor()) // 1-й обработчик
    .addInterceptor(AuthInterceptor())    // 2-й обработчик
    .build()

Каждый interceptor может модифицировать запрос/ответ или передать дальше по цепочке.