Sobes.tech
Junior — Middle

Peut-on instancier directement un objet de protocole dans un langage de programmation?

sobes.tech IA

Réponse de l'IA

En Swift (langage de programmation pour iOS), les protocoles décrivent un ensemble d'exigences (méthodes, propriétés) qu'un type doit implémenter. Il n'est pas possible de créer directement une instance du protocole, car le protocole lui-même ne contient pas d'implémentation.

Cependant, s'il existe une classe ou une structure qui implémente le protocole, on peut créer une instance de ce type et travailler avec lui via une référence au protocole.

Exemple :

protocol Drawable {
    func draw()
}

class Circle: Drawable {
    func draw() {
        print("Dessiner un cercle")
    }
}

let shape: Drawable = Circle() // créer une instance de la classe qui implémente le protocole
shape.draw() // appeler la méthode du protocole

Si vous souhaitez avoir un objet qui correspond au protocole, mais ne pas vouloir créer une classe concrète, vous pouvez utiliser des types enveloppants ou des implémentations anonymes, mais il n'y a pas d'instanciation directe du protocole.