0% ont trouvé ce document utile (0 vote)
52 vues21 pages

Introduction aux Design Patterns en Java

Transféré par

christian n'takpe
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
52 vues21 pages

Introduction aux Design Patterns en Java

Transféré par

christian n'takpe
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ARCHITECTURE LOGICIELLE

N’TAKPE N’guessan Christian

Université Virtuelle de Côte d’Ivoire

May 29, 2024

1 / 21
Introduction

Les design patterns (patrons de conception) sont des recettes de


conception orientées objet.
Solutions classiques à des problèmes récurrents de la conception de
logiciels.
Plans ou schémas personnalisables pour résoudre un problème récurrent
dans le code.

2 / 21
Gang of Four

Introduits par quatre développeurs : Gamma, Helm, Johnson et Vlissides


en 1995.
Livre : ”Design Patterns: Elements of Reusable Object-Oriented
Software”.
Détaille vingt-trois solutions répondant à des problèmes récurrents en
développement logiciel.

3 / 21
Catégories de Design Patterns

Création : Instanciation et configuration des classes et des objets.


Structure : Organisation des classes d’un programme dans une structure
plus importante.
Comportement : Organisation des objets en vue de leur collaboration.

4 / 21
Utilisation des Patrons de Conception

Décrits de manière générique pour être adaptés aux différents problèmes


à résoudre.
Ne peuvent pas s’appliquer directement à toutes les situations sans
adaptation.
Concept général pour résoudre un problème précis, pas un bout de code
spécifique.
Permettent de ne pas réinventer la roue, car couvrent la plupart des
situations problématiques.

5 / 21
Patrons de Création
Fournissent des mécanismes de création d’objets pour augmenter la
flexibilité et la réutilisation du code.
Principaux patrons de création :
Factory Method (Fabrique) : Définit une interface pour la création
d’objets dans une classe mère, délègue aux sous-classes le choix des
types d’objets à créer.
Abstract Factory (Fabrique Abstraite) : Permet de créer des
familles d’objets apparentés sans préciser leur classe concrète.
Builder (Monteur) : Permet de construire des objets complexes
étape par étape, en utilisant le même code de construction pour
différentes variations.
Prototype (Prototype) : Permet de créer de nouveaux objets à
partir d’objets existants sans rendre le code dépendant de leur
classe.
Singleton (Singleton) : Permet de garantir qu’une classe n’a
qu’une seule instance, avec un point d’accès global.
6 / 21
Factory Method (Fabrique)

Définit une interface pour la création d’objets dans une classe mère.
Délègue aux sous-classes le choix des types d’objets à créer.

7 / 21
Abstract Factory (Fabrique Abstraite)

Permet de créer des familles d’objets apparentés sans préciser leur classe
concrète.

8 / 21
Builder (Monteur)

Permet de construire des objets complexes étape par étape.


Utilise le même code de construction pour différentes variations ou
représentations d’un objet.

9 / 21
Prototype (Prototype)

Permet de créer de nouveaux objets à partir d’objets existants.


Évite de rendre le code dépendant de la classe des objets créés.

10 / 21
Singleton (Singleton)

Garantit qu’une classe n’a qu’une seule instance.


Fournit un point d’accès global à cette instance.

11 / 21
Conclusion

Les patrons de création sont essentiels pour augmenter la flexibilité et la


réutilisation du code.

12 / 21
Singleton (Singleton)

Patron de conception de création garantissant qu’une classe n’a qu’une


seule instance.
Fournit un point d’accès global à cette instance.

13 / 21
Problèmes Résolus par le Singleton

Garantit l’unicité d’une instance pour une classe.


Contrôle l’accès à une ressource partagée (ex: base de données, fichier).
Protège l’instance en l’empêchant d’être modifiée.

14 / 21
Implémentation du Singleton

Rendre le constructeur privé pour empêcher la création d’instances sans


contrôle.
Créer une méthode statique pour contrôler l’instanciation.

15 / 21
Factory Method (Fabrique)

Fabrique est un patron de conception de création qui définit une interface pour
créer des objets dans une classe mère ou interface, mais délègue le choix des
types d’objets à créer aux sous-classes. La fabrique permet donc à une classe
de déléguer l’instanciation à des sous-classes.

16 / 21
Exemple d’interface en Java

Supposons que nous disposions de l’interface suivante en Java :

public interface Button {


public void draw();
}

Nous pourrions ensuite avoir différentes implémentations de cette interface


pour créer différents types d’animaux.

17 / 21
Factory Method (Fabrique)

Fabrique est un patron de conception de création qui définit une interface pour
créer des objets dans une classe mère ou interface, mais délègue le choix des
types d’objets à créer aux sous-classes. La fabrique permet donc à une classe
de déléguer l’instanciation à des sous-classes.

18 / 21
Exemple en Java
Supposons que nous disposions de l’interface suivante :
public interface Button {
public void draw();
}
Il existe une première implémentation de cette interface :
public class SimpleButton implements Button {
public void draw() {
System.out.println("Simple button.");
}
}
La classe ‘SimpleButton‘ est instanciée dans de nombreuses autres classes, et
donc son constructeur apparaı̂t à de nombreux endroits. Supposons que nous
fassions une autre implémentation de ‘Button‘ :
public class ModernButton implements Button {
public void draw() {
System.out.println("Modern button."); 19 / 21
Implémentation de la Fabrique en Java
Une fabrique consiste à isoler la création des objets de leurs utilisations. Par
exemple :
public class ButtonFactory {
public Button createButton() {
return new SimpleButton();
}
}
Toutes les instanciations doivent se faire via cette classe. Les modifications
nécessaires à l’utilisation de la classe ‘ModernButton‘ sont isolées :
public class ButtonFactory {
public Button createButton() {
return new ModernButton();
}
}
De manière générale, le patron de conception a la forme suivante, où une
classe abstraite de création d’objets peut être étendue de plusieurs manières
20 / 21
différentes.
21 / 21

Vous aimerez peut-être aussi