Что такое паттерн Facade

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

Ответ

Фасад — это структурный паттерн, который предоставляет простой интерфейс к сложной системе классов, библиотеке или фреймворку. Он скрывает сложность внутренней реализации, делая взаимодействие более удобным.

Пример:

class MediaPlayerFacade {
    private val audioPlayer = AudioPlayer()
    private val videoPlayer = VideoPlayer()

    fun playMedia(audioFile: String, videoFile: String) {
        audioPlayer.play(audioFile)
        videoPlayer.play(videoFile)
    }
}

// Использование:
val player = MediaPlayerFacade()
player.playMedia("song.mp3", "movie.mp4")

Преимущества:

  • Упрощает работу с подсистемой
  • Снижает зависимость клиентского кода от внутренних классов
  • Инкапсулирует сложность

Фасад часто используется в Android для работы с Camera API, MediaPlayer или другими сложными системами.