Memento, utiliser ce patron de conception avec Python

Memento, utiliser ce patron de conception avec Python

Dans ce tutoriel, nous apprendrons pourquoi et comment utiliser le design pattern Memento.

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 memento python

Définition :

Mémento : Patron de conception qui permet de renvoyer un objet à un état précèdent sans violer le principe d’encapsulation utilisé par 2 objets. Voir source

Exemple pratique :

On souhaite incrémenter un nombre, si durant le déroulement une erreur survient la valeur précèdente sera restaurée.

Restaurer à un état précèdent

Pour restaurer notre nombre à un état précèdent, nous créeons la méthode memento.

Le gardien de transaction

Le gardien de transaction sauvegarde une nouvelle valeur avec commit et restaure une ancienne avec rollback.

Restauration automatique de la valeur sauvegardé si echec

Une méthode décorée avec Transactional retrouvera son état précèdent si une exception est levée.

Nombre à incrémenter

La méthode do_stuff ci-dessous est décoré avec la classe Transactional. Si une erreur apparait dans do_stuff, l’état de value sera restauré.

Test du comportement de memento

Conclusion

Ainsi s’achève ce tutoriel, si vous avez des remarques ou des questions, vous pouvez les ajouter en commentaire.

Laisser un commentaire