Middle
Quels modèles de conception connaissez-vous?
sobes.tech IA
Réponse de l'IA
Créationnels :
- Méthode de Fabrique (Factory Method) : Définit une interface pour créer un objet, mais laisse aux sous-classes le soin de décider quelle classe instancier.
- Fournisseur Abstrait (Abstract Factory) : Fournit une interface pour créer des familles d'objets liés ou dépendants sans spécifier leurs classes concrètes.
- Constructeur (Builder) : Sépare la construction d'un objet complexe de sa représentation, de sorte que le même processus de construction peut créer différentes représentations.
- Prototype (Prototype) : Crée de nouveaux objets en copiant une instance existante.
- Singleton (Singleton) : Garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global à cette instance.
Structurels :
- Adaptateur (Adapter) : Convertit l'interface d'une classe en une autre interface que les clients attendent.
- Pont (Bridge) : Sépare une abstraction de sa mise en œuvre afin qu'elles puissent varier indépendamment.
- Composite (Composite) : Compose des objets en structures arborescentes pour représenter des hiérarchies partie-tout. Permet aux clients de traiter les objets individuels et leurs compositions de manière uniforme.
- Décorateur (Decorator) : Ajoute dynamiquement des responsabilités à un objet. Une alternative flexible à la sous-classe pour étendre la fonctionnalité.
- Facade (Fasade) : Fournit une interface unifiée à un ensemble d'interfaces dans un sous-système. Définit une interface de haut niveau qui rend le sous-système plus facile à utiliser.
- Flyweight (Flyweight) : Utilisé pour partager efficacement un grand nombre d'objets similaires.
- Proxy (Proxy) : Fournit un objet substitut qui contrôle l'accès à un autre objet.
Comportementaux :
- Chaîne de Responsabilité (Chain of Responsibility) : Permet de transmettre des requêtes le long d'une chaîne de gestionnaires. Chaque gestionnaire décide s'il doit traiter la requête ou la transmettre au suivant.
- Commande (Command) : Encapsule une requête en tant qu'objet, permettant de paramétrer des clients avec différentes requêtes, de mettre en file d'attente ou de journaliser ces requêtes, et de supporter des opérations d'annulation.
- Itérateur (Iterator) : Fournit un moyen d'accéder séquentiellement aux éléments d'un objet agrégé sans révéler sa représentation interne.
- Médiateur (Mediator) : Définit un objet qui encapsule comment un ensemble d'objets interagissent. Favorise un couplage faible en évitant les références explicites entre objets.
- Mémento (Memento) : Capture et externalise l'état interne d'un objet sans violer l'encapsulation, permettant à l'objet de revenir à cet état ultérieurement.
- Observateur (Observer) : Définit une dépendance de type "un à plusieurs" entre objets, de sorte que lorsque l'un change d'état, tous ses dépendants sont notifiés et mis à jour automatiquement.
- État (State) : Permet à un objet de changer son comportement lorsque son état interne change. L'objet semble changer de classe.
- Stratégie (Strategy) : Définit une famille d'algorithmes, encapsule chacun d'eux et les rend interchangeables. Permet à l'algorithme de varier indépendamment des clients qui l'utilisent.
- Méthode Modèle (Template Method) : Définit le squelette d'un algorithme dans une opération, en laissant certains pas aux sous-classes. Permet aux sous-classes de redéfinir certains pas de l'algorithme sans changer sa structure.
- Visiteur (Visitor) : Représente une opération à effectuer sur les éléments d'une structure d'objets. Permet de définir une nouvelle opération sans changer les classes des éléments sur lesquels elle opère.