« Patrons de conception/Objet composite » : différence entre les versions

Contenu supprimé Contenu ajouté
→‎Exemples : titre de la section en « Implémentations »
→‎Quand l'utiliser : Un exemple
Ligne 10 :
Par exemple, lorsque la seule et unique différence entre deux méthodes est que l'une manipule un objet de type <tt>Carré</tt>, et l'autre un objet <tt>Cercle</tt>.
Lorsque, pour le traitement considéré, la différenciation n'a ''pas besoin'' d'exister, il serait plus simple de considérer l'ensemble de ces objets comme homogène.
 
=== Un exemple ===
 
{{à faire|à clarifier}}
 
Un exemple simple consiste à considérer l'affichage d'une arborescence de fichiers et des dossiers. On veut afficher les fichiers et, pour chaque dossiers, afficher ce qu'il contient : des dossiers et des fichiers.
 
Dans ce cas, le patron composite est tout à fait adapté :
* L'Objet est « ce qui est contenu dans un dossier », il peut s'agir d'un fichier ou d'un dossier
* L'ObjetSimple est un fichier, on appelle simplement sa méthode affiche()
* L'ObjetComposite est un dossier, il contient des objets (c'est à dire des fichiers et des dossiers), il suffit de parcourir la collection d'Objets qu'il contient pour afficher fichiers et dossiers.
 
== Diagramme de classes UML ==