Mode de combinaison du modèle de conception 15

Contexte

Tout d'abord, comprenons le "partie-tout", ce genre de relation "partie-tout" dans la vraie vie est également très courant. Par exemple: collèges et écoles, succursales et sièges sociaux, livres et bibliothèques, etc.

Dans le développement logiciel, nous devons souvent traiter des objets simples et des objets composites. Nous pouvons utiliser le mode combiné pour traiter des objets uniques et des objets composites de manière cohérente. Le client n'a pas besoin de savoir s'il s'agit d'un objet unique ou d'un objet composite pour être appelé. Cette polyvalence réduit très bien le code client.

L'introduction ci-dessus est-elle plus abstraite? Ne vous inquiétez pas, continuez à regarder en bas.

Quel est le mode combiné

"

Composez des objets en arborescences pour représenter des hiérarchies partie-tout.Composite permet aux clients de traiter des objets individuels et des compositions d'objets de manière uniforme. L'utilisation des objets est cohérente.)

"

Le mode de combinaison se compose principalement de 3 éléments:

"
  • Rôle du composant abstrait (composant): sa fonction principale est de déclarer des interfaces publiques pour les composants feuille et branche et d'implémenter leurs comportements par défaut.

  • Rôle du composant feuille (feuille): il s'agit d'un objet de nœud feuille dans la composition, il n'a pas de nœud enfant et est utilisé pour implémenter l'interface publique déclarée dans le rôle de composant abstrait.

  • Le rôle du composant de branche (Composite): c'est l'objet nœud de branche dans la combinaison, et il a des nœuds enfants. Il implémente l'interface déclarée dans le rôle du composant abstrait, et sa fonction principale est de stocker et de gérer des sous-composants, contenant généralement des  Add()、Remove()、GetChild() méthodes.

"

Le diagramme de structure du mode combiné est le suivant.

Mode combiné

Code

Composant

Feuille

Composite

Code de test:

Que fait ce code de test? Nous l'utilisons pour parcourir Leafle contenu.

traverser

Les résultats des tests sont les suivants:

树叶Lvshen1:被访问!
树叶Lvshen2:被访问!
树叶Lvshen3:被访问!

Penser au mode combiné

En ce qui concerne le code ci-dessus, il Leafs'agit d'un objet unique, qui Compositeest un objet composé. Pour le client, ce qu'on appelle, c'est Componentqu'il n'y a pas de différence entre le tout et la pièce. CompositeIl peut se charger à la fois lui-même et Leafn'a besoin que d'un ensemble de codes pour être satisfait.

Après avoir utilisé le mode combiné, nous pouvons voir que si nous voulons ajouter un nœud de branche (composite) ou un nœud feuille (feuille), est-ce facile? Il suffit de trouver son nœud parent. Il est très facile de développer et conforme au principe d'ouverture et de fermeture, ce qui est très bénéfique pour la maintenance future.

Alors, quand l'utilisons-nous?

Dans le développement, si nous avons besoin d'afficher des scènes "partie à tout", telles que le menu arborescent, la gestion des fichiers et des dossiers, etc., nous pouvons utiliser le mode combiné.

De plus, si vous avez besoin de développer un système de gestion, cela peut impliquer le développement de relations de rang du personnel. Par exemple, la structure arborescente du directeur général-directeur du service-employé.

Dans le système de distribution du commerce électronique, la relation entre en ligne et hors ligne doit être affichée. Le mode combiné peut également être utilisé.

 

Recommandé dans le passé

Scannez le code QR pour devenir plus excitant. Ou recherchez Lvshen_9 sur WeChat , vous pouvez répondre pour obtenir des informations en arrière-plan

  1. 回复"java" 获取java电子书;

  2. 回复"python"获取python电子书;

  3. 回复"算法"获取算法电子书;

  4. 回复"大数据"获取大数据电子书;

  5. 回复"spring"获取SpringBoot的学习视频。

  6. 回复"面试"获取一线大厂面试资料

  7. 回复"进阶之路"获取Java进阶之路的思维导图

  8. 回复"手册"获取阿里巴巴Java开发手册(嵩山终极版)

  9. 回复"总结"获取Java后端面试经验总结PDF版

  10. 回复"Redis"获取Redis命令手册,和Redis专项面试习题(PDF)

  11. 回复"并发导图"获取Java并发编程思维导图(xmind终极版)

Un autre: cliquez sur [ Mes avantages ] pour avoir plus de surprises.

 

Je suppose que tu aimes

Origine blog.csdn.net/wujialv/article/details/109483356
conseillé
Classement