Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
departement_info:personnels:pb:pa3 [2025/04/27 20:53] – [Exercice pour la prochaine séance] Brutus Philippe | departement_info:personnels:pb:pa3 [2025/04/27 21:41] (Version actuelle) – [Exercice pour la prochaine séance] Brutus Philippe |
---|
comme dans {{:departement_info:personnels:pb:pa3:options_cumulables.zip|cet exemple}}. | comme dans {{:departement_info:personnels:pb:pa3:options_cumulables.zip|cet exemple}}. |
| |
| ---- |
| |
| Dans la dernière version du projet Alarmes, l'enregistrement et le chargement sont définis comme des opérations en dehors des classes concernées (HeureV1, HeureV2, Alarme et ListeDAlarmes). Cela permet de les définir (et de définir d'autres opérations) sans ajouter ou modifier le code de ces classes. C'est bien le cas pour les classes HeureV1, HeureV2 et l'interface Heure ainsi que pour la classe Alarme. Mais ce n'est pas tout à fait le cas pour la classe ListeDalarmes qui dépend des classes définissant les opérations d'enregistrement et de chargement dans ses méthodes enregistreSous et charge. |
| |
| Pour découpler complètement la classe ListeDAlarmes des classes ChargementTexte, ChargementBinaire, EnregistrementTexte, EnregistrementXML et EnregistrementBinaire, il faudrait que l'instanciation des objets de ces classes soit réalisée en dehors de la classe ListeDAlarmes, par des méthodes de création d'objet qui créent et renvoient un objet dont la classe dépend de paramètre·s d'appel. Une classe qui crée des objets dont la classe dépend de paramètre·s est appelée une fabrique. |
| |
| ==== Fabrique ==== |
| |
| La fabrique est une classe de création d'objets. Elle permet d'instancier des objets dont le type est dérivé d'un type abstrait. La classe exacte de l'objet créé n'est pas connue par l'appelant. |
| |
| Dans {{:departement_info:personnels:pb:pa3:lst15.zip|cette version}} du projet Alarmes, la méthode enregistreSous n'instancie plus l'opération d'enregistrement et la méthode charge n'instancie plus l'opération de chargement. Les 2 méthodes délèguent cette instanciation à une fabrique (GestionDeFichiers) qui propose deux méthodes pour cela : operationPourEnregistrement et operationPourChargement. Chacune d'elle détermine la classe de l'objet à créer en fonction de l'argument d'appel, le nom complet de fichier, qui indique la stratégie par l'extension du nom de fichier. |
==== Exercice pour la prochaine séance ==== | ==== Exercice pour la prochaine séance ==== |
| |
Compléter {{:departement_info:personnels:pb:pa3:lst16.zip|ce projet}} pour que...\\ | Compléter {{:departement_info:personnels:pb:pa3:lst16.zip|ce projet}} pour que...\\ |
- le nom associé à chaque alarme soit lu au chargement et écrit à l'enregistrement des fichiers de version 2 ;\\ | - le nom associé à chaque alarme soit lu au chargement et écrit à l'enregistrement des fichiers de version 2 ;\\ |
- l'on puisse lire les fichiers en version 1. | - l'on puisse lire les fichiers de version 1. |
| |
Ce travail est à rendre par courrier électronique sous l'intitulé "TP05 NFP121" à l'adresse "philippe.brutus (à) caensup.fr" pour le 25/04/2025 à 8h00 avec en pièce jointe l'archive contenant les seuls fichiers modifiés ou ajoutés (dans leurs paquets respectifs). | |
| |
==== Pour partager le travail en cours ==== | |
| |
{{:departement_info:personnels:pb:pa3:partage.zip|partage}} | Les tests automatisés définis dans la classe de test TestEnregistrementEtChargementDeListeDAlarmes doivent tous réussir ! |
| |
| Ce travail est à rendre par courrier électronique sous l'intitulé "TP05 NFP121" à l'adresse "philippe.brutus (à) caensup.fr" pour le 05/05/2025 à 8h00 avec en pièce jointe l'archive contenant les seuls fichiers modifiés ou ajoutés (dans leurs paquets respectifs). |
| |
| |