L'interface Java Recognizable est prévue pour être implémentée par des classes de formes reconnaissables, par exemple un triangle ou un carré.
Elle possède deux méthodes à définir dans les classes qui l'implémentent :
- public Recognizable recognize() qui permet d'implémenter l'algorithme de reconnaissance de la forme ;
- public void action() qui permet à la forme d'effectuer une action.
L'utilisation de ces deux méthodes est totalement libre. Dans cette démonstration, j'ai choisi d'exécuter directement action() dans recognize() mais il est tout à fait possible de reporter cette exécution. C'est pour cela que recognize() retourne un objet de type Recognizable.
De plus, ce découplage reconnaissance/action assure la réutilisation de formes pour différentes actions. Ce projet étant principalement destiné au jeu vidéo, on peut se dire qu'une forme servira à plusieurs actions.
Par exemple, tracer une ligne servira à découper un ennemi si on maintient la touche Ctrl mais lancera de la magie si on appuie sur Alt... Au lieu d'utiliser un if/else, il suffit d'implémenter la méthode recognize() de la ligne dans une classe mère et de reporter l'implémentation de l'action dans deux classes filles LigneAttaque et LigneMagie pour rester dans l'exemple précédent.
Il est donc beaucoup plus facile de maintenir l'algorithme de reconnaissance des formes tout en offrant une multitude de possibilités pour chacune d'elles.
Page d'accueil (en)