Notes sur le modèle de conception 17 - Modèle d'itérateur (itérateur)

Écrivez un programme pour afficher la structure des départements d'une école : l'exigence est que la composition des départements de l'école soit affichée sur une page, une école a plusieurs collèges et un collège a plusieurs départements.

 

introduction de base

1) Iterator Pattern (Iterator Pattern) est un modèle de conception couramment utilisé, qui appartient au modèle comportemental

2) Si nos éléments de collection sont implémentés de différentes manières, telles que des tableaux, des classes de collection Java ou d'autres méthodes, lorsque le client souhaite parcourir ces éléments de collection, il doit utiliser plusieurs méthodes de traversée, et il exposera également la structure interne de l'élément, qui peut être résolu en utilisant le mode itérateur.

3) Le mode itérateur, qui fournit une interface unifiée pour parcourir les éléments de la collection, utilise une méthode cohérente pour parcourir les éléments de la collection sans connaître la représentation sous-jacente des objets de la collection, c'est-à-dire qu'il n'expose pas sa structure interne.

 

 

Diagramme de classes de principe du modèle d'itérateur

 

Explication du diagramme de classes de principe - c'est-à-dire (rôles et responsabilités du mode itérateur)

1) Iterator : interface Iterator, fournie par le système, signifiant hasNext, next, remove

2) ConcreteIterator : une classe d'itérateur spécifique qui gère les itérations

3) Aggregate : une interface d'agrégation unifiée qui dissocie le client de l'agrégation spécifique

 

Code de base :

 

    // Juger s'il y a un élément suivant dans la liste
    @Override
    public boolean hasNext() {         // TODO Stub de méthode généré automatiquement         if(index >= departmentList.size() - 1) {             return false;         } else {             index + = 1 ;             renvoie vrai ;         }     }







    @Override
    public Object next() {         // TODO Stub de méthode généré automatiquement         return departmentList.get(index);     }


En fait, le processus d'accès est unifié et la même interface est utilisée pour accéder à chaque élément de la collection.

 

Notes et détails du modèle d'itérateur

avantage

1) Fournir une méthode unifiée pour parcourir les objets, les clients n'ont plus besoin de prendre en compte le type d'agrégation et peuvent parcourir les objets avec une seule méthode.

2) La structure interne de l'agrégation est masquée. Lorsque le client veut parcourir l'agrégation, il ne peut obtenir que l'itérateur, mais ne connaîtra pas la composition spécifique de l'agrégation.

3) Fournit une idée de conception selon laquelle une classe ne devrait avoir qu'une seule cause de changement (appelée principe de responsabilité unique). Dans la classe d'agrégation, nous séparons l'itérateur, c'est-à-dire pour séparer la responsabilité de la gestion de la collection d'objets et de la traversée de la collection d'objets, de sorte que si la collection change, seul l'objet d'agrégation est affecté. Et si la méthode de parcours est modifiée, seul l'itérateur est affecté.

4) Lorsque vous souhaitez afficher un groupe d'objets similaires, ou parcourir un groupe des mêmes objets, il convient d'utiliser le mode itérateur

défaut

Chaque objet agrégé nécessite un itérateur, ce qui générera plusieurs itérateurs difficiles à gérer

 

 

Je suppose que tu aimes

Origine blog.csdn.net/qq_22059611/article/details/103269315
conseillé
Classement