EDITIONS ENI : 05. Conception avec les Design Patterns
Organisme
44812 ST HERBLAIN CEDEXVoir toutes ses formationsAutres organismes proposant cette formation
Durée
Modalités
- Classe virtuelle
- Présentiel
Par les stagiaires, qui en début et fin de formation, réalisent une auto-évaluation de leurs connaissances et compétences en lien avec les objectifs de la formation.
Prix
Public
Architectes, développeurs, analystes, chefs de projets…
Pré-requis
Posséder une solide connaissance en programmation orientée objet (Java).
Objectifs pédagogiques
- Comprendre la philosophie des Design Patterns
- Connaître les principaux patterns
- Appréhender la démarche d’utilisation des modèles pour appliquer le bon patron
- Appliquer les Design Patterns dans une architecture technique de conception
Programme détaillé
Introduction aux Design Patterns (1 heure)
• Que sont les Design Patterns ?
- Historique et approche objet
• Nécessité des patterns
- Comment les patterns améliorent la qualité logicielle
• L’approche UML
- Rappels sur le formalisme UML
- Diagramme de séquence et diagramme de classes
Architectures et Design Patterns (1 heure)
• Les composants et les Frameworks
- Vers l’intégration des patterns
• Les couches et les services
- Répartition des responsabilités
- Le modèle MVC
Les Design Patterns GoF (1 jour)
• Les patterns de construction : maîtriser les constructions d’objets
- Fabrique simple
- Fabrique abstraite
- Fabrique en singleton
• Les patterns de structuration :
- Proxy
- Façade
- Adapter
- Composite
• Les patterns de comportement :
- Observateur
- Stratégie
- State
- Visitor
• Travaux pratiques :
- Présentation de l’application qui servira d’étude de cas
- Identification des structures de classes pouvant être réorganisées en Patterns sur une modélisation existante
- Refactoring de la modélisation et observations sur le code généré
Les Design Patterns d’architecture logicielle (0,5 jour)
• L’approche en couches logicielles
- Définir les différentes couches logicielles d’une application et définir les responsabilités des composants dans ces couches
• Les patterns associés aux différentes couches
- Couche présentation
- Couche métier
- Couche d’intégration
• L’apport des frameworks pour la mise en oeuvre des Design Patterns
- Apports d’une couche de persistance avec un framework d’ORM
- Apport de l’inversion de contrôle dans les applications en couches
• Travaux pratiques :
- Identification des couches logicielles de l’application étudiées
- Découpage en package des fonctionnalités
Les patterns de la couche d’intégration (1 jour)
• Définir les types de composants à utiliser en fonction des éléments de la couche ressources
• Techniques de masquage de la couche ressource pour la couche métier
• Appliquer les patterns de la couche d’intégration
- Data Access Object : manipuler des données en restant indépendant du format de persistance de ces données
- Service Activator : traitement des requêtes et messages asynchrones
- Transfer Object : véhiculer des données entre les couches logicielles
• Domaines d’application
- Application des patterns avec un framework de persistance
- Faciliter l’intégration et l’application des patterns avec un conteneur logiciel
• Travaux pratiques :
- Développement d’une couche d’accès aux données en utilisant les patterns associés, avec une API d’accès aux données ou un framework d’ORM
- Illustration dans différentes technologies de développement : C#, C++, Java et Python
- Mise en oeuvre au travers d’un exemple en Java
Les patterns pour les traitements métiers (1 jour)
• Définir les types de composants à utiliser en fonction des contraintes fonctionnelles et techniques
• Appliquer les patterns de la couche métier
- Business Delegate : masquer la complexité de la couche métier aux clients
- Service Locator : localisation et mise en cache de services
- Session Facade : exposer les composants métiers aux clients
- Transfer Object : transférer des données entre couches
- Value List Handler : transférer des collections de données aux clients
• Travaux pratiques :
- Implémenter les règles métiers d’une application en l’associant à la couche d’intégration précédemment conçue
- Exposer une façade de composant métier pour une invocation distante
- Illustration dans différentes technologies de développement : C#, C++, Java et Python
- Mise en oeuvre au travers d’un exemple en Java
Les patterns de la couche présentation dans les applications Web (1 jour)
• Les contraintes de la couche présentation en fonction du type d’application
- La couche de présentation des applications Web
- Navigation Web et patterns adaptés
• Appliquer les patterns de la couche présentation dans les applications Web
- Intercepting Filter : filtrer les requêtes et les réponses HTTP après et avant traitement
- Front Controller : fournir un point d’accès unique pour le traitement des requêtes HTTP. Les solutions des frameworks de présentation
- View Helper : encapsuler les données manipulées par les pages
• Utilisation des patterns pour les applications exposant des Services Web à des clients JavaScript
- Mise en oeuvre de Facade et de Proxy d’invocation
- Organisation des ressources dans les classes
• Travaux pratiques :
- Implémentation d’une couche de présentation avec un framework Web
- Exposition des fonctionnalités dans des Services REST pour des clients distants et/ou JavaScript
- Illustration dans différentes technologies de développement : C#, Java et Python
- Mise en oeuvre au travers d’un exemple en Java