IFT232_Exercices_Factory

publicité
IFT 232 Méthodes de conception orientée objets
Séance d’exercices IV
Date : 31 janvier et 7 février 2005
Objectifs
 Comprendre et maîtriser le design pattern « Factory Method »
 Comprendre et maîtriser le design pattern « Abstract Factory»
Factory method design pattern
Enoncé :
Tout programme doit pouvoir rapporter les erreurs ou encore afficher des messages
servant pour le déverminage. Soit l’interface suivante
public interface Trace {
// turn on and off debugging
public void setDebug( boolean debug );
// write out a debug message
public void debug( String message );
// write out an error message
public void error( String message );
}
Question 1 :
Écrire une classe SystemTrace qui implémente Trace. Les instances de cette classe
affiche le résultat dans la fenêtre de commande en ligne.
Question 2 :
Ajouter les instructions de déverminage nécessaires pour tracer sur la console chacun des
appels de méthodes de votre solution de la séance d’exercices III.
Question 3 :
Écrire une classe FileTrace qui implémente Trace. Les instances de cette classe
affiche le résultat dans un fichier.
Question 4 :
Modifier votre réponse à la question 2 pour conserver la trace dans un fichier. Le nom de
ce fichier sera spécifié dans les propriétés du programme et chargé dans une instance de
ProgramProperties. Cette instance sera un Singleton créé à sa première utilisation.
Cette classe sera sous-classe de java.util.Properties.
Si vous n’êtes pas familier avec les alternatives permettant de déterminer les propriétés
d’un
programme,
voir
http://java.sun.com/docs/books/tutorial/essential/attributes/index.html
Question 5 :
Vous avez probablement dû modifier votre programme en plusieurs endroits dans
plusieurs classes. Afin de rassembler la création du système de trace en un seul endroit,
écrivez une classe TraceFactory possédant une méthode « factory » abstraite
getTrace().
Question 6 :
Ecrivez la classe SystemTraceFactory qui est une sous-classe de TraceFactory.
Cette classe rend une instance de la classe SystemTrace.
Question 7 :
Ecrivez la classe FileTraceFactory qui est une sous-classe de TraceFactory
Cette classe rend une instance de la classe FileTrace.
Question 8 :
Transformez TraceFactory en Singleton. La classe de l’instance sera spécifée dans le
fichier de propriétés du programme. Par défaut, une instance de la classe
SystemTraceFactory.
Remarques :
Java fournit un système sophistiqué de logging. Vous pouvez consulter le site suivant
pour avoir plus d’informations :
http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/
Abstract Factory design pattern
Enoncé :
Vos clients sont américains et français. Bien entendu, les américains tiennent mordicus à
travailler avec des mesures en système impérial alors que les français tiennent
absolument au système métrique.
Implémentez à l’aide du patron de conception « Abstract Factory» un programme qui
garantisse aux utilisateurs de ne travailler que dans un seul des deux systèmes de mesure
de leur choix. Le système de mesure choisi sera spécifié dans un fichier de propriétés.
Téléchargement