Modèles de conception
Modèles de conception créatifs
Singleton - Assurez-vous qu'une seule instance d'une classe est créée et fournissez un point d'accès global à l'objet.
Factory (version simplifiée de la méthode Factory) - Crée des objets sans exposer la logique d'instanciation au client et fait référence à l'objet nouvellement créé via une interface commune.
Méthode d'usine: définit une interface pour créer des objets, mais laisse les sous-classes décider de la classe à instancier et fait référence à l'objet nouvellement créé via une interface commune.
Abstract Factory - Offre l'interface pour créer une famille d'objets liés, sans spécifier explicitement leurs classes.
Builder - Définit une instance pour créer un objet mais laisse les sous-classes décider de la classe à instancier et permet un contrôle plus fin du processus de construction.
Prototype - Spécifiez les types d'objets à créer à l'aide d'une instance prototypique et créez de nouveaux objets en copiant ce prototype.
Modèles de conception comportementale
Chaîne de responsabilité - Il évite d'attacher l'expéditeur d'une demande à son destinataire, donnant ainsi à d'autres objets la possibilité de gérer la demande également. - Les objets deviennent des parties d'une chaîne et la demande est envoyée d'un objet à un autre à travers la chaîne jusqu'à ce qu'un des objets la gère.
Commande - Encapsuler une demande dans un objet, Permet le paramétrage des clients avec différentes demandes et Permet d'enregistrer les demandes dans une file d'attente.
Interprète - Étant donné une langue, définissez une représentation de sa grammaire avec un interprète qui utilise la représentation pour interpréter des phrases dans la langue / Mapper un domaine à une langue, la langue à une grammaire et la grammaire à une conception hiérarchique orientée objet
Itérateur - Fournit un moyen d'accéder séquentiellement aux éléments d'un objet agrégé sans exposer sa représentation sous-jacente.
Médiateur - Définissez un objet qui résume la façon dont un ensemble d'objets interagit. Le médiateur favorise le couplage lâche en empêchant les objets de se référer explicitement les uns aux autres, et il vous permet de varier leur interaction indépendamment.
Observateur - Définissez une dépendance un-à-plusieurs entre les objets afin que lorsqu'un objet change d'état, toutes ses dépendances soient notifiées et mises à jour automatiquement.
Stratégie - Définissez une famille d'algorithmes, encapsulez chacun d'eux et rendez-les interchangeables. La stratégie permet à l'algorithme de varier indépendamment des clients qui l'utilisent.
Méthode de modèle - Définissez le squelette d'un algorithme dans une opération, en reportant certaines étapes aux sous-classes / La méthode de modèle permet aux sous-classes de redéfinir certaines étapes d'un algorithme sans les laisser modifier la structure de l'algorithme.
Visiteur - Représente une opération à effectuer sur les éléments d'une structure d'objet / Visiteur vous permet de définir une nouvelle opération sans changer les classes des éléments sur lesquels elle opère.
Null Object - Fournit un objet comme substitut pour l'absence d'un objet d'un type donné. / Le modèle d'objet nul fournit un comportement intelligent de ne rien faire, cachant les détails à ses collaborateurs.
Modèles de conception structurelle
Adaptateur - Convertissez l'interface d'une classe en une autre interface attendue par les clients. / Adapter permet aux classes de travailler ensemble, ce qui ne pourrait pas être le cas à cause d'interfaces incompatibles.
Pont - Composez des objets en arborescences pour représenter des hiérarchies partielles. / Composite permet aux clients de traiter les objets individuels et les compositions d'objets de manière uniforme.
Composite - Composez des objets en arborescences pour représenter des hiérarchies partielles. / Composite permet aux clients de traiter les objets individuels et les compositions d'objets de manière uniforme.
Décorateur - ajoutez dynamiquement des responsabilités supplémentaires à un objet.
Flyweight - utilisez le partage pour prendre en charge un grand nombre d'objets qui ont en commun une partie de leur état interne où l'autre partie de l'état peut varier.
Memento - capturer l'état interne d'un objet sans violer l'encapsulation et fournir ainsi un moyen de restaurer l'objet dans son état initial en cas de besoin.
Proxy - fournit un «espace réservé» à un objet pour contrôler ses références.