
AprĂšs la prĂ©sentation du design pattern Bridge (le pont), nous passons Ă un patron de conception un peu plus simple, et pourtant bien pratique pour encapsuler des Ă©lĂ©ments d’un mĂȘme type : le design pattern Composite. Souvent utilisĂ© avec le patron Decorator ou bien Iterator, il est trĂšs souvent utilisĂ©.
Pour suivre le projet :Â le github.
Problématique ?
Toujours dans notre futur jeu-vidéo, nous souhaitons avoir des robots, qui une fois assemblés, pourront voler; tout en prenant en compte que chaque robot a lui aussi la capacité de voler.
Comment mettre ça en place proprement ? De plus, comment savoir par exemple la vitesse maximale du vaisseau créé ?
Une premiĂšre solution
Ici, nous pouvons supposer que le vaisseau est un composite de robots, et possiblement de tout item ayant la capacité de voler.
Nous avons alors :
- une interface : IPlaner, reprĂ©sentant l’interface commune entre la Composition, et les composants,
- une composition : Ship, contenant des IPlaner, et implémentant IPlaner.
- des composants : Robot, implémentant IPlaner.
Comment faire ?
Voici le diagramme de classe :
Voici la mise en place :
Dâautres patrons possibles
Pensez aussi au Decorator, ou bien Ă l’Iterator.