-Apprendre à modéliser et réaliser des composants et des applications évolutives et réutilisables. -Comprendre les principaux patterns de conception.
Durée
2 ou 3 jours
Prix
Nous consulter
Programme
Présentation du design
- Rappel des notions fondamentales de la programmation OO et d’UML
- Les enjeux de la conception : accroître la réutilisation sans freiner les évolutions
- La réutilisation par l’héritage : avantages et inconvénients
Principes fondamentaux en conception objet
- La stratégie d’évolution avec le principe d’ouverture/fermeture (OCP)
- Une réutilisation efficace par l’héritage et les interfaces : le principe de substition de Liskov (LSP)
Principes d’organisation en packages
- Le package comme unité de conception avec les principes d’équivalence livraison/réutilisation (REP) et de réutilisation commune (CRP)
- Le découpage des packages grâce au principe de fermeture commune (CCP)
- L’organisation entre package : principes des dépendances acycliques (ADP) et de relation dépendance/stabilité (SDP)
Principes de construction des classes
- La gestion raisonnée des dépendances avec l’inversion de dépendance (DIP)
- La réduction de la compléxité apparente par la séparation des interfaces (ISP)
- La répartition des responsabilités avec le principe de GRASP
Principes des Design Patterns
- Origine et portée des patterns
- Les design patterns comme réponse aux problèmes techniques
Les patterns fondateurs de Gamma et Gof
- Le catalogue de patterns de la "bande des quatre"
- Isoler la création des objets de leur utilisation avec les patterns de création d’objets : fabrique, singleton et prototype
- Affiner l’affectation des responsabilités grâce aux patterns comportementaux : chaîne de responsabilité, patron de méthode et observateur
- Améliorer la structuration des classes avec les patterns de structure : adaptateur, façade et composite
Les patterns dans l’architecture
- Adapter les pattern à l’architecture multi-tiers
- Optimiser une architecture distribuée avec le Transfer Object et le Session Façade
- Améliorer l’évolutivité des couches avec le Data Access Object et le Business Delegate
- Structurer la couche présentation grâce au MVC (Model-View-Controller) : Front Controller et Composite View