Назад к вопросам
Junior — Middle
79
Каким образом реализуется привязка интерфейса к конкретной реализации во время выполнения программы?
Ответ от нейросети
sobes.tech AI
В iOS для привязки интерфейса к конкретной реализации во время выполнения часто используется паттерн делегирования (delegate) или протоколы (protocols).
Протокол определяет набор методов, а конкретный класс реализует этот протокол. Во время выполнения объект интерфейса ссылается на объект, реализующий протокол, и вызывает его методы. Это позволяет менять реализацию без изменения интерфейса.
Пример на Swift:
protocol DataSource {
func fetchData() -> String
}
class RealDataSource: DataSource {
func fetchData() -> String {
return "Данные из реального источника"
}
}
class ViewController {
var dataSource: DataSource?
func showData() {
if let data = dataSource?.fetchData() {
print(data)
}
}
}
let vc = ViewController()
vc.dataSource = RealDataSource() // привязка реализации во время выполнения
vc.showData() // Выведет: Данные из реального источника
Таким образом, интерфейс (протокол) и реализация связываются динамически.