Приведи пример паттерна Facade из реальной жизни

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

Ответ

Паттерн Facade (Фасад) упрощает работу со сложной системой, предоставляя простой интерфейс.

Пример из Android: работа с Camera API. Вместо ручного управления Camera, SurfaceView, ImageReader и обработки пермишенов, можно использовать CameraX — он скрывает сложность за простыми методами:

val cameraProviderFuture = ProcessCameraProvider.getInstance(context)

cameraProviderFuture.addListener({
    val cameraProvider = cameraProviderFuture.get()
    val preview = Preview.Builder().build().also {
        it.setSurfaceProvider(previewView.surfaceProvider)
    }
    val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
    cameraProvider.bindToLifecycle(this, cameraSelector, preview)
}, ContextCompat.getMainExecutor(context))

CameraX выступает фасадом, инкапсулируя настройки камеры, жизненный цикл и обработку поверхностей.