Ses caractéristiques

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érents car les registres Goblins ne sont plus directement utilisés; mais l’idée est la même.

Déclarer des propriétés

Il est vivement recommandé de déclarer ces 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.do();
    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 et getX Goblins. Néanmoins il est possible que certaines propriétés soient injectées, par le moteur Goblin, dans votre Elfe via setX. C’est par exemple le cas avec le desktopId.