Sur la persistance des données :
Concernant les mécanismes que nous avons mis en place pour rendre les
objets persistants, nous devons observer que :
- Contrôler totalement la persistance des données a bien sûr les
avantages mentionnés auparavant (cf. p.
), mais devient vite lourd et
difficile à maintenir. Si l'on veut ajouter un nouvel attribut à une
classe alors il faut modifier la manière dont les objets de la
classe écrivent leur données dans les fichiers de sauvegarde et,
symétriquement, la manière dont ils lisent ces données pendant le
chargement.
- La sauvegarde sous forme de fichiers de texte est transparente
mais demande une grande attention. Il ne faut pas que les caractères
spéciaux appartenant aux chaînes de caractères à sauvegarder (e.g. caractère nouvelle ligne, espace, tabulation etc.) soient confondues
avec les caractères spéciaux qui servent de délimiteurs de
champs dans les fichiers de sauvegarde. Pour l'instant nous avons
utilisé une suite improbable de deux caractères spéciaux mais en
réalité il aurait fallu mettre en
uvre un mécanisme de dédoublement de caractères pour être vraiment certain que la
sauvegarde textuelle sera toujours correcte.
- D'autre part, la sauvegarde sous forme de fichiers de texte
n'est pas sécurisée. Les fichiers peuvent facilement être
modifiés en dehors du programme sans qu'il y ait un message d'erreur
lors du chargement. L'application peut donc démarrer avec un
ensemble d'objets non valide sans que l'utilisateur soit prévenu.
- La sauvegarde des objets est pensée dans le cadre d'une seule
application ; la mise en
uvre d'un modèle plus générique
permettrait l'utilisation des mêmes données à travers plusieurs
applications sans que chacune soit obligée de réimplémenter cette
sauvegarde.
Theodore Thlivitis, 1998