Chaine de responsabilité, utiliser ce patron de conception avec Python

Posté le juin 4, 2017 Par upidmin

Dans ce tutoriel, nous apprendrons pourquoi et comment utiliser le design pattern Chaine de responsabilité.

Nous le définirons puis l’analyserons au travers d’un exemple pratique avec Python.

Pré-requis : Avoir les bases en programmation orientée objet => Tutoriel OpenClassroom

upidev patron de conception chaine de responsabilité python

Définition Chaine de responsabilité : :

Patron de conception qui permet à un nombre quelconque de classes d’essayer de répondre à une requête sans connaître les possibilités des autres classes sur cette requête. Cela permet de diminuer le couplage entre objets. Le seul lien entre ces objets est la requête qui passe jusqu’à que l’un des objets puissent y répondre.

Exemple pratique :

On souhaite retirer des billets depuis un distributeur à partir d’une somme initiale.
Ex : $25 = 20 * 1 + 5 * 1
Afin de retirer les billets en conséquence, on souhaite que les billets retirés soit déduits de la somme initiale.

Classe abstraite ( Handler )

Commençons par créer, une classe Handler regroupant les méthodes utilisées pour gérer le retrait des billets.

Gérer le retrait des billets

A présent, nous souhaitons retirer les billets à partir de la somme initiale définie. Pour chaque billet à retirer, nous pouvons créer une sous classe qui retirera le maximum de billet ( 1 ) pour sa valeur ( $20 ) de la somme initialement définie. ( $25 )

Retrait de billet pour de vrai

Ci dessous, on définit notre distributeur automatique qui en fonction des demandes retournera des billets dans l’ordre suivant ( $50 -> $20 -> $10 -> $5 -> ? Non traité).

Conclusion

Félicitations, vous venez de terminer ce tutoriel. Vous savez à présent comment utiliser le patron de conception Chaine de responsabilité

Laisser un commentaire