Composite - Découverte des Design Patterns

composite pattern

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 :

  1. une interface : IPlaner, reprĂ©sentant l’interface commune entre la Composition, et les composants,
  2. une composition : Ship, contenant des IPlaner, et implémentant IPlaner.
  3. des composants : Robot, implémentant IPlaner.

Comment faire ?

Voici le diagramme de classe :

composite pattern

Voici la mise en place :

 

D’autres patrons possibles

Pensez aussi au Decorator, ou bien Ă  l’Iterator.

Notre adresse

1 rue du guesclin
44000 Nantes

Notre téléphone

+33 2 79 65 52 87

Société

DevToBeCurious SARL
84860163900018 - Nantes B 848 601 639