Programmation Objet en Java – Cours 9 Design Patterns 1 – (C) 2005, Frédéric Peschanski 1
Cours Java : deuxième saison
Cours 7 : Exceptions, tests unitaires et assertions
Cours 8 : Design Patterns 1
Cours 9 : Design Patterns 2
Cours 10 : Interfaces graphiques en Swing
Cours 11 : Collections
Programmation Objet en Java – Cours 9 Design Patterns 1 – (C) 2005, Frédéric Peschanski 2
Les Design Patterns
Première partie
Introduction aux Design Patterns
Exemple : le Pattern « Bridge » 
Héritage vs. délégation
Patterns créateurs
Les idiomes « SimpleFactory » 
Le pattern « FactoryMethod » 
Les variantes « AbstractFactory » et « Builder »  
Le pattern « Singleton » 
Patterns structuraux
« Adapter » et « Façade »  
Programmation Objet en Java – Cours 9 Design Patterns 1 – (C) 2005, Frédéric Peschanski 3
De la Bidouille OO à la ProgrammationOO
Principes objets
Encapsulation
Héritage, classes abstraites
Polymorphisme
Particularité de Java
Interfaces
Question
Comment combiner ces différents outils pour écrire des
programmes ou boîtes-à-outils flexibles, réutilisables,
efficaces, etc, etc.
Important : c'est une question difficile
Programmation Objet en Java – Cours 9 Design Patterns 1 – (C) 2005, Frédéric Peschanski 4
Les Design Patterns
Définition
Elément de conception réutilisable permettant de résoudre un
problème récurrent en programmation orientée objet.
Historique
Inspirées d'une méthode de conception d'immeuble en
architecture [Alexander, 77]
Introduites par le «GOF» dans le livre Design Patterns en 99
(dans le «GOF» 23 patterns «standards»)
Pourquoi les patterns ?
Des « recettes d'expert » ayant fait leurs preuves 
Un vocabulaire commun pour les architectes logiciels
Incontournable dans le monde de la P.O.O
Programmation Objet en Java – Cours 9 Design Patterns 1 – (C) 2005, Frédéric Peschanski 5
Les idiômes de programmation
Un «bout de programme Java» que l'on tape systématiquement lorsque
l'on veut résoudre un problème «récurrent»
Exemple 1 : parcourir les éléments d'un tableau
for(int i=0;i<tableau.length;i++) {
tableau[i] = ... patati patata ...
}
Exemple 2 : utiliser une fonctionnalité du JDK
try {
// fonctionnalité XYZ du jdk
XYZ(...);
} catch(XYZException e) {
e.printStackTrace(System.err);
}
1 / 28 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !