Chaque Elfe peut avoir ses propres caractéristiques. Ici on parle de propriétés
protégées de l’instance du service. Vous devriez connaître les méthodes setX
,
getX
et delX
des Goblins. Pour les Elfes c’est un peu différent car les
registres Goblins ne sont plus directement utilisés; mais l’idée est la même.
Il est recommandé de déclarer les propriétés avec la convention du préfixe _
pour indiquer qu’elles sont protected
. En effet, inutile d’essayer d’utiliser
la syntaxe #
pour espérer créer des propriétés private
car le fonctionnement
des Elfes ne le permet pas. De même, il n’est pas judicieux de les déclarer
comme publiques (sans le préfixe _
) afin de ne pas être tenté de les appeler
depuis un autre Elfe faisant référence à celui-ci. En effet, ces propriétés sont
exclusivement protected
et uniquement des quêtes pourraient permettre de les
rendre accessibles depuis l’extérieur.
class Elrond extends Elf {
_yearsOfLife = 0;
async create(id, desktopId = null) {
this.logic.create();
return this;
}
async nextYear() {
this._yearsOfLife++;
return this._yearsOfLife;
}
}
Il n’est pas possible de réaliser un delX
comme avec les Goblins. Les Elfes
sont plus proches des classes habituelles. Oubliez le delX
et contentez-vous
de garder vos propriétés cohérentes dans votre Elfe. Il est toujours possible
d’assigner la valeure null
à une propriété au lieu de la supprimer comme le
fait delX
des Goblins.
Les Elfes sont une abstraction sur les Goblins, mais les propriétés elfiques ne sont en aucun cas simulées par des
setX
etgetX
Goblins. Néanmoins il est possible que certaines propriétés soient injectées, par le moteur Goblin, dans votre Elfe viasetX
. C’est par exemple le cas avec ledesktopId
.