Design Pattern
1)Introduction
Désign Pattern est une méthode de modélisation des solutions de développement des logiciels informatiques, elle est utilisé pour organiser les classes utilisés dans les codes sources en vue de permettre la réutilisation des solutions développés et la simplisité des modifications des besoins durant les phases de développements.
Dans ce suit, une présentation scintétique pour la majorité des patterns utlisés dans le développement des logiciels informatiques.
2)Les différents patterns
2.1)Les Patterns Comportementaux
Behavior pattern sont généralement concerné pour la communication entre objets.
- State Pattern: Il permet de créer des objets qui réprésentent plusieurs états, l'objet change son état selon les méthodes applelés
- Commande Pattern: La requête est encapsulé dans un objet comme une commande et passé à un émetteur objet,l'émtteur identifie l'objet approprié pour la commande et lui passe cette commande pour l'exécuter.Il est généralement utilisé pour le traitement en lot des tâches sur une Classe comme pour le cas d'un import en lot des virements.
- Strategy Pattern: Il définit et encapsule une famille d'alghorithmes.Le programme séléctionne l'un de ces alghorithmes en se basant sur la classe Context.
C'est un pattern qui change durant le run time.Il est utilisé par exemple dans le cas de Swtich Case où les switch sont remplacés par traitement des classes.
- Observer Pattern :Il permets à une partie de système de savoir quand un évènement a pris place,si un objet change d'état les autres objets dépendant seront automatiquement notifés.
2.2)Les Patterns Céationnels
Les pattern de création concernent la création des objets,ils cachent les informations de création des objets.
- Factory Pattern: Le factory pattern est l'un des Design pattern les plus utilisés, il permets la création d'un objet sans l'éxposition de la logique de création au client en se basant sur un interface commun.
- Abstruct Factory Pattern: Il permet de Fournir une interface pour créer des objets d'une même famille sans préciser leurs classes concrètes. les objets sont regroupés en famille, le système doit utiliser les objets d'une famille ou autre. Généralement utilisé dans la création des bibliothèques pour encapsuler les méthodes du programme à travers la fourniture des interfaces aux programmes clients.
- Monteur Pattern (Builder): Il sert à créer un objet complexe en utilisant des simples objets et en se basant sur l'approche étape par étape.
- Singleton Pattern: Ce pattern assure qu'il existe une instance de classe qui sera accessible à travers un point d'accès global.
2.3)Les Patterns Structuraux
Il décrit comment des classes et des objets sont combinés pour former une large structure.
- Façade Pattern (Facade Pattern): Il cache la complexité de système et offre un interface pour le client pour accéder au système.
- Adaptateur Pattern (Adapter Pattern): Il joue le role d'un intermédiaire entre interfaces incompatibles.
- Pont Pattern (Bridge): Le pont est utilisé pour découpler une abstraction de son imlémentation pour que les deux varient indépendament.
- Décorateur Pattern (Decorator ou Wrapper): Il permets d'ajouter des nouvelles fonctionalités pour un objet existant sans modifier son structure.
- Proxy Pattern: Le pattern Proxy réprésente une fonctionalité pour une autre classe,il permet de créer un objet pour jouer l'interface d'un autre objet.
- Composite Pattern: Le composite pattern est une collection d'objets où chaque objet peut être un composant ou un simple objet composé,il permet à l'application cliente de traiter les objets Composants et composés de la même mannière.
2.4)MVC pattern
Le Mvc pattern est utilisé pour séparer les composants de l'application, c'est un pattern qui est communément utilisé dans le web.Il se base sur trois couches
- Modèle:Représente les classes utilisés dans l'application,
- Vue:Représente la partie interface visible pour l'application,
- Controlleur:Il gère les actions éffectués par les utilisateurs sur les vues ainsi que le cahngement de modèle.
3)Conclusion:
Design pattern est une méthode de conception applicative,comme pour la conception des bases de données,elle se considère comme un décision incontournable pour une structure harmonisé des codes. Le choix de pattern à utiliser dans une application particulière est un choix de conception de l'allure de cette dernière, Ce choix dépond communément de cas traité par le développeur, en effet ,c'est la situation qui est attaché à l'alghorithme adopté par le développeur qui favorise l'utilisation d'un tel pattern.
Toutefois, pour le cas dominante des algorithmes, celle qui concerne la connexion aux sources des donnés (SGBD,Fichiers),
alors les patterns qu'on peut les adopter sont :"Façade Pattern" et "Strategy pattern".
Ces deux patterns peuvent être qualifiés comme les plus prépondérantes pour la structuration de code de connexion
aux sources des données.
En revanche, on a noté dans l'expérience l'utilisation d'un autre pattern particuiliter pour la connexion aux sources des donnés
dans la majorité des applications, il s'agit d'un pattern composé de deux classes: une qui concerne le modèle de la classe
et qui contient seulement les attributs d'un objet, et une autre qui contient le métier appliqué sur la classe, cette dernière est baptisé: la "Classe business". Pour une classe "Compte" donc, on trouvera une classe pour les attributs et une autre classe pour le métier appliqué sur cette classe comme les opérations de mise à jour d'un compte.
Dans le lien suivant une implémentation en C# pour la majoritée des patterns utilisés, les exemples sont basés sur la présentation de désign pattern pour JAVA de site Tutorialpoint, les classes utilisés ont été modifiés pour rapprocher les patterns implémentés vers les problèmes fréquements rencontrés durant les phases de développements des logicles informatiques en particuliers celles qui concernent les couchent de connexions aux bases des données.