3.2 KiB
Design pattern
Exposé
Intro
Ca aide les dev à bien organiser leur code
Catégories
Création : manière de créer un objet ou un ensemble d'objets Comportement : manière d'interprétation du code et des objets Structure :
Avantages
-
Modularité : modules bien précis, on sait ou chercher
-
Cohésion
-
Couplage : modules s'instancient les uns dans les autres pour être réutilisés
-
Réutilisabilité : bibliothèques, frameworks utiles à d'autres
Incovénient
Complexité : c'est dur à apprendre (long) Effort abstraction/synthèse : gros travail préalable et faut le prendre en main
Les frameworks qui l'utilisent
.net en implémentation JavaServer Faces MVC Spring
Conclusion
C'est quand même utile
Bouiche
C'est orienté objet, langage objet.
Il a pas assez parlé des API
API : bibliothèque qui pourront être réutilisés dans d'autres codes
il est important en design pattern de réutiliser ce qui a déjà été fait
Cours
Historique
Création au début des années 70, à l'origine issu de l'architecture puis appliqué au monde logiciel dans les années 90
Définition
Solution éprouvée à un problème récurrent dans la conception d'applications orientées objet (optimisation, évolutivité, clarté...)
Se définit en amont du développement et est indépendant du langage.
Chaque design pattern se caractérise par
-
Un nom
-
Une problématique
-
Une solution
-
Une conséquence
Objectif
Rendre le code plus efficace
Catégories
En tout 23 design patterns regroupés en 3 catégories :
-
Création : instantiation et configuration des classes et objets
-
Structure : Organisation des classes d'une application
-
Comportement : Organisation des objets pour qu'ils collaborent entre eux.
Création
L'idée est de créer des objets de manière appropriée à la situation. Les modèles les plus utilisés :
-
Factory method : instancier plusieurs objets d'une même classe, aux paramètres différents
-
Singleton : instancier un seul objet d'une classe donnée
Structure
Facilitent la conception via un moyen simple de réaliser des relations entre entités.
Le plus utilisé : Decorator.
Permet de redéfinir certaines méthodes d'une classe pour certaines instances uniquement
Comportement
Identifient les modèles de communication entre les objets et les reproduisent
Le plus utilisé : Observer
Une classe aux valeurs changeante contacte directement celle chagrée de l'affichage lorsque sa valeur change
Avantages / Inconvénients
Avantages | Inconvénients |
---|---|
Gain de rapidité, de qualité et baisse des coûts | Difficile d'accès, nécessite d'être expérimenté |
Réutilisabilité et bonnes pratiques | Difficile de savoir lequel des 23 est le plus adapté |
Bonne doc et aide à la communication entre développeurs car bien connus | Utile uniquement sur POO |