Les Design Patterns (ou patrons de conception) sont des solutions éprouvées et réutilisables à des problèmes récurrents dans la conception de logiciels. À l’origine liés à l’architecture logicielle, ces patrons ont rapidement trouvé leur place dans la programmation orientée objet, avant de devenir essentiels pour les développeurs cherchant à structurer efficacement leur code.
Ces patterns sont classés en trois grandes familles : les créateurs, les structuraux et les comportementaux. Ils offrent des modèles de conception qui favorisent une programmation plus claire, plus maintenable et plus évolutive.
Au cours de cette formation, vous découvrirez ces trois grandes familles de Design Patterns et apprendrez à les appliquer efficacement dans vos projets de développement, tout en explorant des concepts clés tels que UML et les GRASP patterns. À la fin de la formation, vous serez capable d’identifier, conseiller et implémenter les Design Patterns adaptés aux défis de conception que vous rencontrez.
Objectifs de la formation Design Patterns
Objectifs opérationnels :
- Maîtriser les principaux patrons de conception et savoir les recommander ou les appliquer efficacement dans vos projets logiciels.
- Savoir identifier les problèmes récurrents et choisir le pattern le plus approprié pour y répondre.
- Appliquer les Design Patterns dans des langages tels que Java ou C++ pour résoudre des problématiques de conception de manière structurée et fiable.
Objectifs pédagogiques :
À l’issue de cette formation, vous aurez acquis les compétences nécessaires pour :
- Comprendre l’origine et la philosophie des Design Patterns.
- Maîtriser les trois grandes familles de Design Patterns : créateurs, structuraux et comportementaux.
- Savoir appliquer concrètement les Design Patterns pour résoudre des problématiques de conception logicielle.
- Connaître les GRASP patterns et leur application dans la conception de logiciels.
À qui s’adresse cette formation ?
Public :
Cette formation s’adresse aux architectes logiciels et développeurs expérimentés en programmation orientée objet qui souhaitent approfondir leurs connaissances des Design Patterns et apprendre à les appliquer dans leurs projets de développement.
Prérequis :
Une solide expérience en programmation orientée objet (avec des langages tels que Java, C++) est requise. Une bonne connaissance des problématiques de développement et de conception est nécessaire pour tirer pleinement parti de cette formation.
Contenu du cours Design Patterns
Première journée : Les fondamentaux et compréhension des Design Patterns
- Notions de programmation orientée objet et UML.
- La genèse des Design Patterns avec le Gang of Four.
- Rôle, intérêts et typologie des Design Patterns.
- Identifier un problème et trouver le pattern qui y répond.
Atelier 1 : Relecture et analyse du pattern Factory Method.
Deuxième journée : Les Patterns créateurs
- Le Singleton, Factory Method, Abstract Factory, Builder, et Prototype.
Atelier 2 : Identification et implémentation des principaux patterns créateurs en Java ou C++.
Troisième journée : Les Patterns structuraux
- Le Composite, Adapter, Decorator, Facade, Proxy, Flyweight, et Bridge.
Atelier 3 : Identification et implémentation des principaux patterns structuraux.
Quatrième journée : Les Patterns comportementaux
- Le Iterator, Strategy, Template Method, State, Observer, Command, Visitor, Chain of Responsibility, Interpreter, Mediator, et Memento.
Atelier 4 : Identification et implémentation des principaux patterns comportementaux.
Cinquième journée : Les GRASP Patterns
- Expert, Faible couplage, Forte cohésion, Polymorphisme, Pure Fabrication, Créateur, Contrôleur.
Atelier 5 : Application des GRASP patterns dans une application web simple.
Sixième journée : Design Patterns pour les micro-services
- Problématiques et patterns pour les micro-services : SAGA, CQRS View, Gateway, Immutable Deployment.
Atelier 6 : Implémentation des patterns SAGA, Agrégat, CQRS View, et Gateway dans un environnement micro-services.
Cette formation vous permet de vous familiariser avec les solutions éprouvées et les outils méthodologiques que sont les Design Patterns, tout en vous offrant des outils pour structurer votre code de manière optimale, que ce soit pour des applications classiques ou des architectures modernes telles que les micro-services.