Ответ
Фасад — это структурный паттерн, который предоставляет простой интерфейс к сложной системе классов, библиотеке или фреймворку. Он скрывает сложность внутренней реализации, делая взаимодействие более удобным.
Пример:
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 или другими сложными системами.