Design pattern – corrigé du td n°4 - design patterns - téléc

Design Pattern – Corrigé du TD n°4

Le pattern Singleton : Y a-t-il un contrôleur dans la tour ?

Le pattern Singleton repose sur une simple idée : contrôler le nombre d'instances d'une classe pour n'en autoriser qu'une seule. Cela se fait en rendant le constructeur privé, ce qui empêche la création directe d'instances depuis l'extérieur.

La principale difficulté réside dans la gestion de la sécurité multi-thread. En effet, si plusieurs threads tentent simultanément de créer une instance Singleton, il est crucial d'assurer qu'une seule instance soit effectivement construite, sans conflits ni comportements inattendus.

Le pattern Décorateur : René la Taupe

Le pattern Décorateur est une technique qui permet d'ajouter dynamiquement des responsabilités à un objet sans modifier sa structure. Il repose sur l'encapsulation : une classe décoratrice contient une instance de la classe à décorer et délègue les appels à cette instance.

Par exemple, dans le contexte de René la Taupe, ce pattern peut être utilisé pour superposer deux fonctionnalités : l'affichage d'objets sur une image de base et le calcul du prix total en additionnant successivement les prix des composants ajoutés.

Le pattern State

Le pattern State modélise les différents états d'une machine et les transitions entre ces états. Son objectif n'est pas de gérer les transitions elles-mêmes, mais de garantir que la machine réagit correctement à toute demande, même si celle-ci n'est pas valide dans l'état actuel.

Chaque état doit implémenter toutes les méthodes de transition, même si certaines ne modifient pas l'état courant. Par exemple, en mode En_Attente_Carte, la méthode retirer_carte ne doit rien faire, mais elle doit être présente pour éviter des erreurs.

Une solution optimale consiste à éviter la création de nouvelles instances pour chaque transition d'état et à empêcher un utilisateur externe de modifier l'état de la machine, en supprimant les méthodes de type setter.

FAQ

1. Pourquoi le constructeur Singleton est-il privé ?

Le constructeur est privé pour empêcher la création d'instances multiples depuis l'extérieur de la classe. Cela permet de centraliser la création via une méthode statique dédiée.

2. À quoi sert le pattern Décorateur dans un système de calcul de prix ?

Il permet d'ajouter des composants au calcul de prix de manière flexible et progressive, sans modifier la logique de base de l'objet initial.

3. Comment éviter les erreurs dans le pattern State ?

En implémentant toutes les transitions dans chaque état, même celles qui ne changent pas de contexte, et en protégeant l'accès direct à l'état via des méthodes contrôlées.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne