Académique Documents
Professionnel Documents
Culture Documents
1
• Définition des design patterns
• Les modèles de création
- Fabrique de création
- Singleton
- Builder
• Les modèles de structure
- Adapter
- Proxy
- Composite
• Les modèles de comportement
- Iterator
- Template
• Conclusion
2
Patron de conception - Définition
• Les patrons de conception sont définis pour pouvoir être utilisés avec un
maximum de langages orientés objets
3
Utilisation des Patrons de conception
Les patrons de conception ont évolué sur une longue période de temps et ils
fournissent les meilleures solutions à certains problèmes rencontrés lors du
développement de logiciels.
L'apprentissage de ces modèles aide les développeurs inexpérimentés à
apprendre la conception de logiciels de manière simple et plus rapide.
4
Patrons de conception - Type
5
Modèles de création (Creational patterns) :
Fabrique (Factory)
Une Fabrique est une classe qui n'a pour rôle que
de créer et de construire des objets.
6
Modèles de création (Creational patterns) :
Fabrique (Abstract Factory)
Implémentation :
Structure
8
Modèles de création (Creational patterns) :
Fabrique (Abstract Factory)
/** Interface de description d'un point */
public interface Point {
public int getX();
public int getY();
}
/** Interface de description d'une ligne */
public interface Line {
public int getX1();
public int getY1();
public int getX2();
public int getY2();
}
/** Fabrique retournant des objets de types point ou ligne */
public class PointLineFactory {
/** Retourne un Point aux coordonnées x,y */
public Point getPoint( int x, int y ) {
return new PointImpl( x, y );
}
/** Retourne une Ligne aux coordonnées x1,y1,x2,y2 */
public Line getLine( int x1, int y1, int x2, int y2 ) {
9 return new LineImpl( x1, y1, x2, y2 );}}
Modèles de création (Creational patterns) : Singleton
10
Modèles de création (Creational patterns) : Singleton
Structure
11
Modèles de création (Creational patterns) : Singleton
Implémentation classique
• La classe est déclarée final pour empêcher la création d'une classe dérivée.
12
Modèles de création (Creational patterns) : Singleton
Implémentation classique
private MonSingleton() {
// traitement du constructeur
}
Exemple :
Le bureau du Président d’Etat est un Singleton. La Constitution de l’Etat
précise les moyens par lesquels est élu un président, limite la durée du mandat,
et définit l'ordre de succession. En conséquence, il peut y avoir au plus un
président actif à un moment donné. Quelle que soit l'identité personnelle du
président actif, le titre, « Le Président» est un point d'accès global qui identifie
la personne dans le bureau.
14
Modèles de création (Creational patterns) : Singleton
• Quelle est la différence entre une classe statique et une classe singleton ?
15
Modèles de création (Creational patterns) : Singleton
private MonSingleton() {
// traitement du constructeur
}
@Override
public Object clone() throws CloneNotSupportedException {
throw new CloneNotSupportedException();
}
}
16
Modèles de création (Creational patterns) : Builder
17
Modèles de création (Creational patterns) : Builder
Exemple :
Exemple à l’usage :
18
Modèles de création (Creational patterns) : Adapter
Adapter :
• L'Adaptateur ou Adapter est un moyen commode de faire fonctionner un
objet avec une interface qu'il ne possède pas.
19
Modèles de création (Structural patterns) : Adapter
Exemple :
20
Modèles de création (Structural patterns) : Adapter
21
Modèles de création (Structural patterns) : Adapter
22
Modèles de création (Structural patterns) : Adapter
23
Modèles de création (Structural patterns) : Proxy
• Ce type de structure vise à pouvoir changer l'objet cible sans changer l'objet
source (manipulé).
24
Modèles de création (Structural patterns) : Proxy
Problème :
Prendre en charge les objets gourmands en ressources et vous ne voulez pas
instancier ces objets tant qu'ils ne sont pas réellement demandés par le client.
25
Modèles de création (Structural patterns) : Proxy
26
Modèles de création (Structural patterns) : Proxy
27
Modèles de création (Structural patterns) : Proxy
Exemple :
• Le proxy fournit un substitut ou un espace réservé pour fournir l'accès à un
objet.
• Un chèque ou une traite bancaire est un proxy pour les fonds dans un compte.
• Un chèque peut être utilisé à la place de l'argent pour faire des achats et, en
fin de compte, contrôler l'accès à l'argent dans le compte de l'émetteur.
28
Modèles de création (Structural patterns) : Proxy
Exemple :
29
Modèles de création (Structural patterns) : Composite
30
Modèles de création (Structural patterns) : Composite
• Composez les objets dans les structures arborescentes pour représenter les
hiérarchies de parties entières.
31
Modèles de création (Structural patterns) : Composite
Problème
• L'application doit manipuler une collection hiérarchique d'objets
"primitifs" et "composites".
32
Modèles de création (Structural patterns) : Composite
Structure :
Les composites qui contiennent des composants, chacun pouvant être un
composite.
33
Modèles de création (Structural patterns) : Composite
Exemple :
34
Modèles de Comportement « behavioral patterns» :
Iterator
35
Modèles de Comportement « behavioral patterns» :
Iterator
Exemple :
36
Modèles de Comportement « behavioral patterns» :
Template
37
Modèles de Comportement « behavioral patterns» :
Template
Exemple :
38
Conclusion
39