Sobes.tech
Junior — Middle

Is het mogelijk om direct een protocolobject te instantieren in een programmeertaal?

sobes.tech AI

Antwoord van AI

In Swift (programmeertaal voor iOS) beschrijven protocollen een set van vereisten (methoden, eigenschappen) die een type moet implementeren. Het is niet mogelijk om direct een instantie van het protocol te maken, omdat het protocol zelf geen implementatie bevat.

Echter, als er een klasse of structuur is die het protocol implementeert, kan je een instantie van dat type maken en ermee werken via een verwijzing naar het protocol.

Voorbeeld:

protocol Drawable {
    func draw()
}

class Circle: Drawable {
    func draw() {
        print("Tekent een cirkel")
    }
}

let shape: Drawable = Circle() // maak een instantie van de klasse die het protocol implementeert
shape.draw() // roep de methode van het protocol aan

Als je een object wilt dat voldoet aan het protocol, maar geen concrete klasse wilt maken, kun je wrapper-typen of anonieme implementaties gebruiken, maar directe instantie van het protocol is niet mogelijk.