Sobes.tech
Junior — Middle

Je možné priamo inštancovať objekt protokolu v programovacom jazyku?

sobes.tech AI

Odpoveď od AI

V Swift (programovacom jazyku pre iOS) protokoly opisujú súbor požiadaviek (metódy, vlastnosti), ktoré musí typ implementovať. Priamo vytvoriť inštanciu protokolu nie je možné, pretože protokol sám o sebe neobsahuje implementáciu.

Ak však existuje trieda alebo štruktúra, ktorá protokol implementuje, môžete vytvoriť inštanciu tohto typu a s ňou pracovať cez odkaz na protokol.

Príklad:

protocol Drawable {
    func draw()
}

class Circle: Drawable {
    func draw() {
        print("Kreslíme kruh")
    }
}

let shape: Drawable = Circle() // vytvorenie inštancie triedy, ktorá implementuje protokol
shape.draw() // volanie metódy protokolu

Ak potrebujete objekt, ktorý zodpovedá protokolu, ale nechcete vytvárať konkrétnu triedu, môžete použiť obalové typy alebo anonymné implementácie, ale priame vytvorenie inštancie protokolu nie je možné.