Design Patterns en C#
3e édition
Les 23 modèles de conception : descriptions et solutions illustrées en UML 2 et C#
Édition Eni
Avant-propos
Partie 1 : Introduction
Chapitre 1-1
Introduction aux patterns de conception
1. Design patterns ou patterns de conception15
2. La description des patterns de conception17
3. Le catalogue des patterns de conception18
4. Comment choisir et utiliser un pattern de conception pour résoudre un problème20
5. Organisation du catalogue des patterns de conception23
Chapitre 1-2
Une étude de cas : la vente en ligne de véhicules
1. Description du système25
2. Cahier des charges26
3. Prise en compte des patterns de conception27
Partie 2 : Patterns de construction
Chapitre 2-1
Introduction aux patterns de construction
1. Présentation29
2. Les problèmes liés à la création d'objets30
2.1 Problématique30
2.2 Les solutions proposées par les patterns de construction31
Chapitre 2-2
Le pattern Abstract Factory
1. Description33
2. Exemple33
3. Structure36
3.1 Diagramme de classes36
3.2 Participants37
3.3 Collaborations37
4. Domaines d'utilisation37
5. Exemple en C#38
Chapitre 2-3
Le pattern Builder
1. Description45
2. Exemple45
3. Structure47
3.1 Diagramme de classes47
3.2 Participants48
3.3 Collaborations48
4. Domaines d'utilisation49
5. Exemple en C#49
Chapitre 2-4
Le pattern Factory Method
1. Description55
2. Exemple
3. Structure57
3.1 Diagramme de classes57
3.2 Participants58
3.3 Collaborations58
4. Domaines d'utilisation58
5. Exemple en C#59
Chapitre 2-5
Le pattern Prototype
1. Description63
2. Exemple63
3. Structure66
3.1 Diagramme de classes66
3.2 Participants67
3.3 Collaboration67
4. Domaines d'utilisation67
5. Exemple en C#68
Chapitre 2-6
Le pattern Singleton
1. Description73
2. Exemple73
3. Structure74
3.1 Diagramme de classe74
3.2 Participant75
3.3 Collaboration75
4. Domaine d'utilisation75
5. Exemples en C#76
5.1 La liasse vierge76
5.2 La classe Vendeur77
Partie 3 : Patterns de structuration
Chapitre 3-1
Introduction aux patterns de structuration
1. Présentation79
2. Composition statique et dynamique80
Chapitre 3-2
Le pattern Adapter
1. Description83
2. Exemple83
3. Structure85
3.1 Diagramme de classes85
3.2 Participants86
3.3 Collaborations86
4. Domaines d'application87
5. Exemple en C#87
Chapitre 3-3
Le pattern Bridge
1. Description91
2. Exemple91
3. Structure95
3.1 Diagramme de classes95
3.2 Participants96
3.3 Collaborations96
4. Domaines d'application96
5. Exemple en C#97
Chapitre 3-4
Le pattern Composite
1. Description103
2. Exemple103
3. Structure106
3.1 Diagramme de classes106
3.2 Participants107
3.3 Collaborations107
4. Domaines d'application109
5. Exemple en C#110
Chapitre 3-5
Le pattern Decorator
1. Description113
2. Exemple113
3. Structure118
3.1 Diagramme de classes118
3.2 Participants119
3.3 Collaborations119
4. Domaines d'application119
5. Exemple en C#120
Chapitre 3-6
Le pattern Facade
1. Description123
2. Exemple123
3. Structure126
3.1 Diagramme de classes126
3.2 Participants127
3.3 Collaborations127
4. Domaines d'application128
5. Exemple en C#129
Chapitre 3-7
Le pattern Flyweight
1. Description133
2. Exemple133
3. Structure136
3.1 Diagramme de classes136
3.2 Participants137
3.3 Collaborations137
4. Domaine d'application137
5. Exemple en C#138
Chapitre 3-8
Le pattern Proxy
1. Description143
2. Exemple143
3. Structure147
3.1 Diagramme de classes147
3.2 Participants148
3.3 Collaborations148
4. Domaines d'application148
5. Exemple en C#149
Partie 4 : Patterns de comportement
Chapitre 4-1
Introduction aux patterns de comportement
1. Présentation153
2. Distribution par héritage ou par délégation154
Chapitre 4-2
Le pattern Chain of Responsibility
1. Description157
2. Exemple157
3. Structure161
3.1 Diagramme de classes161
3.2 Participants162
3.3 Collaborations162
4. Domaines d'application162
5. Exemple en C#163
Chapitre 4-3
Le pattern Command
1. Description167
2. Exemple167
3. Structure172
3.1 Diagramme de classes172
3.2 Participants173
3.3 Collaborations173
4. Domaines d'application174
5. Exemple en C#175
Chapitre 4-4
Le pattern Interpreter
1. Description181
2. Exemple181
3. Structure184
3.1 Diagramme de classes184
3.2 Participants185
3.3 Collaborations185
4. Domaines d'application186
5. Exemple en C#186
Chapitre 4-5
Le pattern Iterator
1. Description193
2. Exemple193
3. Structure196
3.1 Diagramme de classes196
3.2 Participants197
3.3 Collaborations197
4. Domaines d'application197
5. Exemple en C#198
Chapitre 4-6
Le pattern Mediator
1. Description203
2. Exemple203
3. Structure207
3.1 Diagramme de classes207
3.2 Participants207
3.3 Collaborations208
4. Domaines d'application208
5. Exemple en C#208
Chapitre 4-7
Le pattern Memento
1. Description215
2. Exemple215
3. Structure218
3.1 Diagramme de classes218
3.2 Participants219
3.3 Collaborations219
4. Domaines d'application219
5. Exemple en C#220
Chapitre 4-8
Le pattern Observer
1. Description225
2. Exemple225
3. Structure228
3.1 Diagramme de classes228
3.2 Participants229
3.3 Collaborations229
4. Domaines d'application229
5. Exemple en C#230
Chapitre 4-9
Le pattern State
1. Description235
2. Exemple235
3. Structure239
3.1 Diagramme de classes239
3.2 Participants239
3.3 Collaborations240
4. Domaines d'application240
5. Exemple en C#240
Chapitre 4-10
Le pattern Strategy
1. Description247
2. Exemple248
3. Structure250
3.1 Diagramme de classes250
3.2 Participants250
3.3 Collaborations251
4. Domaines d'application251
5. Exemple en C#252
Chapitre 4-11
Le pattern Template Method
1. Description257
2. Exemple257
3. Structure262
3.1 Diagramme de classes262
3.2 Participants262
3.3 Collaborations263
4. Domaines d'application263
5. Exemple en C#263
Chapitre 4-12
Le pattern Visitor
1. Description267
2. Exemple267
3. Structure271
3.1 Diagramme de classes271
3.2 Participants272
3.3 Collaborations272
4. Domaines d'application273
5. Exemple en C#273
Partie 5 : Application des patterns
Chapitre 5-1
Compositions et variations de patterns
1. Préliminaire279
2. Le pattern Pluggable Factory280
2.1 Introduction280
2.2 Structure285
2.3 Exemple en C#286
3. Reflective Visitor291
3.1 Discussion291
3.2 Structure295
3.3 Exemple en C#297
4. Le pattern Multicast301
4.1 Description et exemple301
4.2 Structure304
4.3 Exemple en C#305
4.4 Discussion : comparaison avec le pattern Observer312
Chapitre 5-2
Le pattern composite MVC
1. Introduction au problème313
2. Le pattern composite MVC314
3. Le Framework Blazor322
4. Exemple en C#324
4.1 Introduction324
4.2 Architecture324
4.3 Étude du code326
Chapitre 6
Exercices
1. Énoncés des exercices339
1.1 Création de cartes de paiement339
1.1.1 Création en fonction du client
339
1.1.2 Création à l'aide d'une fabrique
340
1.2 Autorisation des cartes de paiement340
1.3 Système de fichiers340
1.4 Browser graphique d'objets341
1.5 États de la vie professionnelle d'une personne342
1.6 Cache d'un dictionnaire persistant d'objets342
2. Correction des exercices345
2.1 Création de cartes de paiement345
2.1.1 Création en fonction du client
345
2.1.2 Création à l'aide d'une fabrique.
346
2.2 Autorisation des cartes de paiement347
2.3 Système de fichiers347
2.4 Browser graphique d'objets353
2.5 États de la vie professionnelle d'une personne354
2.6 Cache d'un dictionnaire persistant d'objets356
Index359