Junior — Middle
Ako sa počas behu programu realizuje väzba rozhrania na konkrétnu implementáciu?
sobes.tech AI
Odpoveď od AI
V iOS sa často používa vzor delegácie (delegate) alebo protokoly (protocols) na prepojenie rozhrania s konkrétnou implementáciou počas behu.
Protokol definuje súbor metód a konkrétna trieda tento protokol implementuje. Počas behu odkazuje objekt rozhrania na objekt, ktorý implementuje protokol, a volá jeho metódy. To umožňuje meniť implementáciu bez zmeny rozhrania.
Príklad v Swift:
protocol DataSource {
func fetchData() -> String
}
class RealDataSource: DataSource {
func fetchData() -> String {
return "Dáta z reálneho zdroja"
}
}
class ViewController {
var dataSource: DataSource?
func showData() {
if let data = dataSource?.fetchData() {
print(data)
}
}
}
let vc = ViewController()
vc.dataSource = RealDataSource() // prepojenie implementácie počas behu
vc.showData() // Vypíše: Dáta z reálneho zdroja
Týmto spôsobom sú rozhranie (protokol) a implementácia dynamicky prepojené.