Sobes.tech
Junior — Middle

Hoe wordt de koppeling van de interface aan een specifieke implementatie tijdens de uitvoering van het programma gerealiseerd?

sobes.tech AI

Antwoord van AI

In iOS wordt vaak het delegatiepatroon (delegate) of protocollen gebruikt om de interface tijdens runtime aan een specifieke implementatie te koppelen.

Een protocol definieert een set methoden, en een concrete klasse implementeert dat protocol. Tijdens runtime verwijst het interface-object naar een object dat het protocol implementeert en roept het zijn methoden aan. Dit maakt het mogelijk om de implementatie te wijzigen zonder de interface te veranderen.

Voorbeeld in Swift:

protocol DataSource {
    func fetchData() -> String
}

class RealDataSource: DataSource {
    func fetchData() -> String {
        return "Gegevens uit de echte bron"
    }
}

class ViewController {
    var dataSource: DataSource?

    func showData() {
        if let data = dataSource?.fetchData() {
            print(data)
        }
    }
}

let vc = ViewController()
vc.dataSource = RealDataSource() // koppeling van implementatie tijdens runtime
vc.showData() // Output: Gegevens uit de echte bron

Op deze manier worden interface (protocol) en implementatie dynamisch gekoppeld.