|
|
Le patron décorateurDe $1Table des matières
EnoncéSur le modèle des transparents 13 et 14 du cours construire des décorateurs qui décorent des objets de type Writer pour :
On veut avoir un décorateur pour chacun des cas énumérés ci-dessus. On veut également pouvoir combiner deux décorateurs. Code de basePar exemple, le code suivant: class CodeDeBase {
public void main(String[] args) {
try {
Writer writer = new StringWriter();
writer.write("je n'aime pas les majuscules. mais en français c'est obligatoire.");
writer.close();
System.out.println(writer);
} catch (IOException e) {
e.printStackTrace();
}
}
}
produit la sortie:
Exemple 1Si vous avez répondu à la première question, vous avez construit la classe ToUpperCaseWriter de telle sorte que le code suivant:
produise la sortie: JE N'AIME PAS LES MAJUSCULES. MAIS EN FRANÇAIS C'EST OBLIGATOIRE. Exemple 2Alors que le code suivant:
produit la sortie suivante:
Exemple 3En combinant deux décorateurs de la façon suivante: class Exemple3 {
public void main(String[] args) {
try {
Writer writer = new StringWriter();
writer = new FirstToUpperCaseWriter(writer);
writer = new CenteredWriter(writer, 10);
writer.write(\"je n'aime pas les majuscules. mais en français c'est obligatoire.\");
writer.close();
System.out.println(writer);
} catch (IOException e) {
e.printStackTrace();
}
}
}
On obtient la sortie:
|
Powered by MindTouch Deki Open Source Edition v.8.08 |