Les Design patterns en développement informatique

NicoleHigh techLeave a Comment

language-orienté-objet

Au moment de développer un logiciel, les schémas de conception permettent d’accélérer le développement tout en maintenant un haut niveau de qualité. Les 23 modèles présentés par le GOF sont classés dans trois grandes catégories ou familles :

  • Création ou créateur (creational): les mécanismes pour la création d’un objet, l’instanciation et/ou l’initialisation.
  • Structuration (structural): la composition et l’organisation des classes du programme ou de l’application pour la conception des interfaces.
  • Comportement (behavioral): modèles de communication entre les classes et distribution de leurs responsabilités

Chaque patron a un nom connu du concepteur et du programmeur. Le formalisme pour décrire les différents modèles est le suivant :

  • Nom
  • Description du problème rencontré
  • Solution à mettre en œuvre (patron de conception) avec souvent un diagramme de classe
  • Conséquences, c’est-à-dire les résultats de cette solution (avantages et inconvénients).

Ces design patterns sont indépendants des langages de programmation utilisés (implémentation en Java, #C, .NET). Il suffit de maîtriser un langage de programmation pour sélectionner la solution qui répond au besoin.

CréateursStructurauxComportementaux
Abstract Factory (Fabrique abstraite)

 

Builder (Monteur)

 

Factory Method (Fabrique)

 

Object Pool (réservoir d’objets)

 

Prototype

 

Singleton

Adapter (Adaptateur)

 

Bridge (Pont)

 

Composite

 

Decorator (Décorateur)

 

Façade

 

Flyweight (Poids-Mouche)

 

Private class data (données de classe privées)

 

Proxy

Chain of responsability (chaîne de responsabilité)

 

Command (Commande)

 

Interpreter (Interpréteur)

 

Iterator (Itérateur)

 

Mediator (Médiateur)

 

Memento

 

Null Object (objet invalide)

 

Observer (Observateur)

 

State (État)

 

Strategy (Stratégie)

 

Template (Patron de méthode)

 

Visitor (Visiteur)

 

Par exemple, en génie logiciel, le Pattern Singleton permet d’isoler l’unicité d’une instance parce que l’application a besoin d’une unique instance de l’objet. Le Singleton donne aussi un accès global à cette instance. Pour visualiser la structure statique du système, les classes, leurs relations et leur comportement visible (interface), on fait un diagramme de classes ULM.

Le fonctionnement du Pattern Strategy (ou stratégie), pour les langages orientés objet, est particulièrement bien expliqué dans cette vidéo :

 

L’antipattern, traduisible par anti-modèle ou anti-patron, correspond à l’absence ou à la mauvaise utilisation des Design Patterns. Par exemple, en croyant faire bien, le concepteur va utiliser un modèle de manière abusive. Il en résulte un logiciel trop lent, des bugs ou encore des coûts de maintenance excessivement élevés. On recense ainsi divers anti-patrons de développement ainsi que des anti-patrons architecturaux. L’utilisation d’un schéma de conception est donc conditionnée par l’existence d’un problème à résoudre.

Design patterns et expérience utilisateur

Les patterns sont aussi utilisés dans la conception UX. Voir à ce sujet l’article présentant ce que sont les Design Patterns par l’agence UX Usabilis.

 

Bibliographie des Design Patterns

 

Design-patterns

En 1995, Eric Gamma, Richard Helm, Ralph Johnson et John Vlissides, surnommés le Gang of Four (la bande des quatre), publient le livre : Design Patterns : elements of reusable object-oriented software. Traduit en français par Design Patterns, Catalogue des modèles de conception réutilisable, l’ouvrage d’informatique contient une formalisation de 23 Design Patterns qui font désormais référence. Actuellement, dans sa définition, Design Patterns est le terme utilisé pour désigner un recueil de bonnes pratiques de conception. C’est la réponse à un certain nombre de problèmes récurrents en programmation orientée objet.

 

head-design-patterns

Elisabeth Freeman, Head First Design Patterns, O’Reilly : un livre ludique pour s’initier à l’utilisation des patrons de conception. L’auteur explore à chaque fois les aspects théoriques et pratiques.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *