Sauvegarder l’état d’un objet
En nos temps où l’orienté-objet est roi, un schéma de fonctionnement revient régulièrement :
Un objet dont chaque instance correspond à une ligne en base. On charge les données lors de l’initialisation de l’objet (dans son constructeur), puis on les sauvegardes lorsque l’on a fini de les modifier.
La problématique est la suivante : mais quand a-t-on fini de les modifier? Dans 99% des cas, « ça dépend« . Les méthodes pour implémenter cette notion sont légions: une méthode genre save
que l’on appelle « à la fin« , une sauvegarde systématique à chaque modification, et la rationnelle mais risquée sauvegarde dans le destructeur de l’objet.
Cette dernière méthode semble la plus intéressante, puisqu’elle défini avec une presque certitude la notion de « fin » de modifications. Toutefois, dans notre contexte orienté objet, il y a de fortes chances que l’on utilise un objet pour se connecter à la base de donnée. Et cet objet fermera probablement sa connexion dans le destructeur. Et comment savoir que la base est encore connectée lors de l’exécution du destructeur de notre objet de données? C’est le drame.
Commentaires récents