Les Design Patterns  » in a Nutshell « 

       Les modèles de conception (Design Patterns), sont parmi les aspects importants en architecture logiciel dans la phase de la réalisation (programmation), ils représentent les bonnes pratiques utilisées par les développeurs de logiciels expérimentés orientés objet , en proposant des solutions rapides , efficaces et sophistiquées aux problèmes généraux rencontrés .

Ces Design Patterns peuvent être classés en 3 Catégories , dans chaque catégorie on décrit les principaux et les fréquemment utilisés :

  • Patterns de création qui traite le mécanisme de création des objets et donner au programme plus de flexibilité pour décider quels objets doivent être créés pour un cas d’utilisation donné , à savoir : Factory , Builder , Singleton.                                             

1. Description du Design Pattern Factory

      👉  Le Pattern Factory utilise le polymorphisme et l’inversion de contrôle pour définir une classe qui permet de gerer et différer l’instanciation des objets en sous-classes en fonction d’un ou plusieurs critères :
 
Pattern Factory

2. Description du Design Pattern Builder

     👉  Le modèle Builder construit un objet complexe à l’aide des objets simples et d’une approche de création étape par étape (voir un exemple très connu dans la capture ci-dessous) :

Patern Builder
Utilisation du pattern builder

3. Description du Design Pattern Singleton

     👉  Le modèle Singleton est utilisé pour assurer qu’on a une seule instance d’un classe particulière, généralement pour instancier la première fois un objet de la classe Factory ou Builder :

Pattern Singleton
  • Patterns de structure qui facilite la conception du code en identifiant un moyen simple et extensible pour réaliser des relations entre les entités (Classes, interfaces…) ,à savoir  : Facade , Proxy , Adapter.

1. Description du Design Pattern Facade

     👉  Ce Pattern est utilisé pour ajoute une interface client au système existant pour en masquer la complexité et fournir au client des méthodes d’appel simplifiées :

Pattern Facade
Utilisation du Pattern Facade

2. Description du Design Pattern Proxy

     👉  Ce Pattern est utilisé pour créer une classe qui joue le rôle d’un proxy/gateway et  interfacer les fonctionnalités d’un objet original avec le monde extérieur :

Pattern Proxy
Utilisation du Pattern Proxy

3. Description du Design Pattern Adapter

     👉  Ce Pattern est utilisé pour Convertissez l’interface d’une classe en une autre interface attendue par les clients.

     👉 Permet aux classes de différentes interfaces de travailler ensemble .

     👉  Envelopper une classe existante avec une nouvelle interface.
    

  • Patterns de comportement pour concevoir spécifiquement la communication entre les objets, à savoir : Strategy , Observer , chain of responsibility.

1. Description du Design Pattern Strategy

     👉 Définir une famille d’algorithmes, encapsulez chacun d’eux et rendez-les interchangeables.

     👉 Appliquer le principe « open-closed principle ».

     👉  Définir l’abstraction dans une interface, masquez les détails de l’implémentation dans des classes dérivées.

Pattern Strategy

2. Description du Design Pattern Observer

     👉 Utiliser généralement pour définir une dépendance One-To-Many entre les objets, de sorte que lorsqu’un objet principal (Observable/Subject) change d’état, tous les autres objets liés (Observers) sont notifiées et mises à jour automatiquement (ex : Service Messagerie et notifications)  :

 

3. Description du Design Pattern Chain-of-responsibility

     👉 Comme son nom l’indique, cet pattern est utilisé souvent lors d’un Workflow suite à une chaine de responsabilité.

    👉 Éviter le couplage entre l’émetteur d’une requête et son destinataire, en donnant à plusieurs récepteurs la possibilité de traiter la requête le long d’une chaîne jusqu’à ce qu’un objet puisse la traiter.

 

 Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live 😉

 Auteur : yassine Abainou