1
Julie Vachon, Automne 2006
IFT2251: Génie logiciel
Chapitre 5 - Conception
Section 1- bis : Complément sur les design patterns
Chap.5, Sect.1,bis p.2 Copyrights Julie Vachon, 2006
Catalogue de design patterns
Catalogue de patterns sur Internet:
http://www.dofactory.com/P atterns/Patterns.aspx#list
Chap.5, Sect.1,bis p.3 Copyrights Julie Vachon, 2006
Un design pattern structurel
Une enveloppe peut contenir d’autres enveloppes ou des lettres.
On souhaite signer toutes les lettres à l’intérieur d’une enveloppe…
Une canevas peut contenir d’autres canevas ou des figures.
On souhaite colorer en vert toutes les figures à l’intérieur d’un canevas….
Le patron Composite
Chap.5, Sect.1,bis p.4 Copyrights Julie Vachon, 2006
Le patron Composite
Objectif: Agencer les objets dans une structure en arbre de façon à définir un hiérarchie « partie/tout ».
Un design pattern structurel
Leaf
operation() Component
0peration() Add(Component) Remove(Component) getChild(int)
Forall g in children g.operation()
Composite operation() Add(Component) Remove(Component) getChild(int)
* children
client
*
2
Chap.5, Sect.1,bis p.5 Copyrights Julie Vachon, 2006
Le patron Composite
Un design pattern structurel
Figure
display() ÉlémentDessin
display() add(DrawingElem) remove(DrawingElem)
Canevas
display() add(DrawingElem) remove(DrawingElem)
* children
client
*
Chap.5, Sect.1,bis p.6 Copyrights Julie Vachon, 2006
Le patron Singleton
Singleton - instance: Singleton - Singleton()
+get_instance(): Singleton
Un design pattern de création
Objectif: S’assurer qu’une classe a seulement une instance et fournit un seul point d’accès à celle-ci.
Solution: Le constructeur est déclaré privé à la classe. Lors du premier accès à la méthode get_instance, une instance de la classe est créée.
Lors des accès subséquents, aucune autre instance n’est créée et la référence sur l’instance existante (unique) est retournée.
Chap.5, Sect.1,bis p.7 Copyrights Julie Vachon, 2006
Un design patterns de création
document page
Rapport
Résumé
Bibliographie Intro
Résultats Conclusion
CV
Habiletés
Formation Expérience Infos
générales
Le patron Factory Method
Chap.5, Sect.1,bis p.8 Copyrights Julie Vachon, 2006
Le patron Factory Method
Product
ConcreteProduct ConcreteCreator
factoryMethod() Creator factoryMethod() anOperation()
return
new ConcreteProduct
…
Product = factoryMethod()
…
Un design patterns de création
3
Chap.5, Sect.1,bis p.9 Copyrights Julie Vachon, 2006
Le patron Factory Method
Page
EducationPage
CV
createPages()
document
createPages() document()
ExperiencePage
IntroductionPage
Rapport
createPages() ConclusionPage
public Document() {
this.CreatePages();
}