Les protocoles Flashcards

1
Q

Qu’est-ce qu’un protocole ?

A

Il sert à définir un plan minimal que doit suivre une classe, c’est une manière de s’assurer qu’une classe ait bien toutes les conditions requises avant de s’exécuter. Si elle ne suit pas le protocole, on aura alors un message d’erreur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Comment appelle-t-on une classe qui a implémenté un protocole ?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Comment organiser les protocoles ?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Comment déclare-t-on un protocole ?

A

protocol NomDeMonProtocole {
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

À quoi ressemble un protocole ?

A
protocol ProtocoleAnimal {
 func cri() // Le cri de l'animal
 func seDeplacer() // Le déplacement de l'animal
}

Seules les signatures de vos méthodes seront donc écrites dans votre protocole.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Comment fait-on pour préciser à une classe qu’elle doit implémenter un protocole ?

A

Pour préciser à une classe qu’elle doit implémenter un protocole, on le fait de la même façon que pour l’héritage grâce aux deux points :

**class Animal : ProtocoleAnimal {
 func seDeplacer() {
 // Instructions
 }
 func cri() {
 // Instructions
 }**
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Peut-on imposer à une classe de se conformer à plusieurs protocoles à la fois ?

A

Oui ! On sépare les protocoles dans la déclaration.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Une classe peut-elle hériter d’une classe ainsi que de ses protocoles ?

A

Oui !

Une classe peut à la fois hériter d’une classe et se conformer à un ou plusieurs protocoles. Pour réaliser cela, après le deux-points, en premier on met la classe à hériter, ensuite on indique le ou les protocole(s).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Un protocole peut-il hériter d’un protocole ?

A

Oui !

protocol ProtocoleAnimal2 : ProtocoleAnimal1 {
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly