IFT232_TP3

publicité
IFT 232 Méthodes de conception orientée objets
Travail pratique III
Objectifs
 Maîtriser les notions liées à la programmation par composantes
 Maîtriser les patrons de conception « Observer », « Adapter » et « Singleton »
 Maîtriser la définition de tests unitaires à partir des spécifications
Enoncé :
Pour jouer en bourse, il faut rester au fait des dernières nouvelles économiques. Heureusement Le
Polyphème Économique filtre et relaie les communiqués de presse. Il suffit de s’y abonner pour recevoir
tous les communiqués de presse ou encore seulement ceux reliés à un secteur spécifique de l’économie. Un
abonné peut résilier son abonnement quand il le veut.
Votre tâche consiste à implémenter en Java le système de gestion des abonnements d’une part, et le
système de distribution des communiqués de presse d’autre part.
L’interface suivante CommuniqueDePresse est disponible
public interface CommuniqueDePresse
{
String getContenu();
GregorianCalendar getDate();
String getEmetteur();
String getSecteur();
}
Questions
a)
Donner les spécifications de la classe Polypheme. Ecrire les tests correspondants. Implémenter la
classe Polypheme. En particulier, préciser la gestion des abonnements et la distribution des
communiqués. Vous pouvez supposer que les thèmes sont fixes et connus à l’avance. Au besoin,
spécifiez les classes et interfaces auxiliaires.
b) Implémenter le design pattern « Singleton » pour garantir l’existence d’une instance unique de la
classe Polypheme.
c)
Donner les spécifications, définir les tests unitaires et implémenter la classe « Boursicoteur ». Les
instances de cette classe s’abonnent au service de communiqués à leur création. Implémenter aussi
complètement les méthodes pour s’abonner et résilier un abonnement sur un thème particulier. Le
secteur économique de type String est passé en paramètres à ces méthodes.
d) Donner les spécifications, définir les tests unitaires et implémenter la classe « Archive ». Cette
classe recueille tous les communiqués de presse émis. Elle doit hériter de Vector. Elle ne doit pas
implémenter l’interface permettant de recevoir les communiqués de presse. Utiliser le patron de
conception « Adapter » avec une classe interne et avec une classe interne anonyme.
e)
Implémenter un procédé permettant de censurer les communiqués de presse avant leur publication.
f)
Implémenter et enregistrer un éditeur de communiqué de presse. Cet éditeur se bornera à afficher le
contenu du communiqué de presse. Cet éditeur devra être celui qui sera trouvé par introspection.
Téléchargement