8 mai 2020 · 3 min de lecture
Le motif de conception composite est un motif de conception qui appartient à la catégorie des motifs structurels. Ces modèles concernent la façon dont les classes et les objets sont composés pour former des structures plus grandes. Le modèle composite décrit une telle façon de construire une hiérarchie de classes composée de classes pour deux types d’objets différents (composite et primitif). L’un des objectifs du génie logiciel est de maintenir une cohésion élevée entre les modules et l’autre de réduire le couplage.
De nombreuses applications qui doivent gérer des données hiérarchiques doivent s’assurer qu’elles n’ont pas trop de dépendance entre leurs classes car ces applications ont constamment besoin de mettre à jour leurs composants. Un système de fichiers est un exemple classique de structure hiérarchique contenant des dossiers dans des dossiers et des fichiers dans des dossiers. Un fichier peut être une vidéo, un document texte, un fichier audio. Ainsi, il peut y avoir plusieurs fichiers audio dans un dossier et plusieurs fichiers vidéo dans un autre et ceux-ci peuvent être à l’intérieur d’un autre dossier qui représente « media” qui peut lui-même se trouver dans un autre dossier appelé « conférences”. Le dossier de lecture peut également contenir un autre dossier qui représente le sujet, et cela peut durer éternellement. Le point que nous essayons de faire est que si vous essayez de concevoir une telle application qui traite des composants hiérarchiques, vous pouvez finir par créer des structures de classes hautement couplées et afin d’ajouter plus de composants, beaucoup de redondance peut se produire. Afin de résoudre ce problème commun, le modèle de conception composite fournit une solution élégante. Tout d’abord, voyons ce qu’est un modèle de conception composite? (Java Development Company)
Le modèle de conception composite fournit une hiérarchie de conception, dans laquelle les nœuds avec enfants diffèrent des nœuds sans enfants. Vous pouvez penser à la structure de données arborescentes dans ce cas. Et par rapport à notre exemple, un nœud peut être un dossier, et les enfants peuvent être des fichiers ou des dossiers composés de fichiers. Un groupe d’objets est traité de la même manière qu’une seule instance du même type de cet objet, donc quoi qu’il arrive, nous considérerons le nœud et ses enfants comme le composant dossier, ce qui nous facilitera la conception de notre structure hiérarchique de composants pour notre application. Nous désignerons les composants (objets) à l’intérieur des composants (objets) comme des compositions. Le modèle de conception composite permet au client de traiter uniformément des objets et des compositions individuels. La chose principale à garder à l’esprit est la structure arborescente, tout en traitant ce modèle de conception. Afin de mieux comprendre ce qu’est un modèle de conception composite et son applicabilité, utilisons un exemple de code en java qui est similaire à l’exemple de système de fichiers que nous avons donné.
Lire: « Tout ce que vous devez savoir sur le modèle de conception de méthode de modèle”
Exemple de modèle de conception composite
L’exemple que nous allons utiliser sera d’un cours composé de sujets et de conférences. Si vous suivez un cours sur n’importe quel sujet, il y aura un sujet et ce sujet peut consister en de nombreux sujets et conférences. Alors, comment cela serait-il mis en œuvre? Nous allons d’abord vous montrer l’approche commune.
Créons une classe de cours
Fig: exemple de modèle de conception composite dans la classe java—Lecture
La conférence a un nom et une méthode d’affichage pour afficher la hiérarchie de celle-ci.
La classe de sujet
Fig: exemple de modèle de conception composite dans java — Classe de sujet
Dans notre exemple, la classe de sujet a les caractéristiques d’ajouter un sujet, d’ajouter une conférence et d’afficher les conférences et les sujets dans une hiérarchie. Le sujet lie d’autres sujets et conférences en lui-même. Donc, nous pouvons avoir des sous-thèmes et des conférences sur chacun.
Voyons comment nous les combinons dans la méthode principale
Article complet: https://www.decipherzone.com/blog-detail/when-use-composite-design-pattern-java