Patron iterateur, tutorial patron 4

Description

Définition: Patron ou Pattern
Un patron est une structure de programmation en orienté objet pour faire un option spécifique dans n'importe quel programme. C'est comme un algorithme de trie. Les algo sont déjà créé et ils sont fonctionnel dans n'importe quel programme. La différence, c'est qu'un patron de conception, c'est une option spécifique a un problème récurent. Il faut avoir un très bonne connaissance en orienté objet et le UML est très vite nécessaire dans les patrons d'un certain niveau. C'est pour ça que les tutoriaux sont classé d'intermédiaire à avancer, sauf le Singleton et Itérateur qui sont les plus faciles à utiliser. Les patrons aident à la maintenance, a facilité la visualisation du code, a unifier la programation, a simplifier certain algo, rendre un code réutilisable entre diver projet et apporte des solutions logique et optimisé.

Définition: Itérateur ou Itérator
Un Itérateur est une liste chainé. Avant que la liste chainé aille un nom, c'était un itérator. Mais le besoin d'un itérateur est tellement fréquent, qu'on a fini par lui donner un nom précie. Par contre, une liste chainé est une version simplifié de l'Itérateur. À partir d,un tableau, on a presque toujours une méthode qui convertie en Itérateur, voilà le côté intéressant. J'ai eu de la misère a trouver le patron en vb.net, puisque dans les autres language (C et Java), il appel ça Itérator, en VB.net c'est IEnumerator ou IDictionaryEnumerator. Si vous prennez un HashTable ou un ArrayList, vous allez voir dans les options GetEnumerator. Voilà la clé du patron. Ça convertie toute la liste en un Itérateur. Ensuite, vous allez avoir les options de la liste chainé qui est Current(), MoveNext() et reset()

Ressemblance: Itérateur
Ceux qui utilise des reccordsets sont habituer de faire cette genre de boucle

while rst.read
end while

Bien ça a été copié du patron Itérateur

while iterator.moveNext
end while

Définition: moveNext
Permet d'aller chercher l'item suivant dans la liste et en plus, ça retourne un boolean qui permet de savoir s'il reste des items. Utilie pour faire un while

Définition: Current
Recevoir l'item en cour

Définition: Reset
Remise à 0 de l'Itérateur

Source / Exemple :


'Création d'une liste de valeur
    'Visibilité des controls, on doit pas voir la vue en entier
    'seulement les données voulu, question sécurité
    'On verra ça pas mal plus tard, dans les patron de GRASP 
    Private Function Liste() As ArrayList
        'Création de la liste
        Liste = New ArrayList
        'Création de l'Itérateur
        Dim numero As IEnumerator = observer.GetEnumerator()
        'On parcour l'Itérateur pour demander à la vue sa valeur
        While numero.MoveNext
            Liste.Add(CType(numero.Current, DeVue).getValeur)
        End While
        'On retourne le tableau de valeur créé
    End Function

Conclusion :


Dans ce Zip j'ai fait le grand classic
Les Dés
j'ai mélanger tout les autres patron qu'on a déjà vu: MVC et Observeur, mais pas Singleton, je vais l'ajouter au file du temps dans les exemples

On peut tout faire avec cette source: le nombre de dés voulus (1 à 500), les brasser, connaitre le dés le plus fréquent, avoir des dés avec un certain nombre de face (1 à 30) et même avoir des lettres au lieu des chiffres. Donc c'est très réutilisable comme code et ça respecte le MVC et Observer à la perfection.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.