Junior — Middle
Kako se tokom izvršavanja programa vrši povezivanje interfejsa sa konkretnom implementacijom?
sobes.tech АИ
Одговор од АИ
У 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() // Ще изведе: Данни от реалния източник
По този начин, интерфейсът (протоколът) и реализацията се свързват динамично.