« Patrons de conception/Façade » : différence entre les versions

Contenu supprimé Contenu ajouté
+
+
Ligne 1 :
<noinclude>{{Patrons de conception}}
{{Patron de conception|Façade|Facade|Proposer une interface plus simple et unique afin de camoufler la complexité d'utilisation de toute une bibliothèque, en fournissant moins de fonctionnalités mais suffisamment à la plupart des utilisateurs}}</noinclude>
{{ébauche}}
 
Le [[../|patron de conception]] '''façade''' a pour but de cacher une conception et une interface complexeou difficileun ensemble d'interfaces complexes difficiles à comprendre (cette complexité étant apparue "naturellement" avec l'évolution du sous-système en question).
La façade permet de simplifier cette complexité en fournissant une interface simple du sous-système.
Habituellement, la façade est réalisée en réduisant les fonctionnalités de ce dernier mais en fournissant toutes les fonctions nécessaires à la plupart des utilisateurs.
 
La façade encapsule la complexité des interactions entre les objets métier participant à un [[workflow]].
 
L'utilisation d'une façade a les avantages suivants :
* simplifier l'utilisation et la compréhension d'une bibliothèque logicielle car la façade possède des méthodes pratiques pour les tâches courantes,
* rendre le code source de la bibliothèque plus lisible pour la même raison,
* réduire les dépendances entre les classes utilisatrices et les classes internes à la bibliothèque puisque la plupart des classes utilisatrices utilisent la façade, ce qui autorise plus de flexibilité pour le développement du système,
* rassembler une collection d'API complexes en une unique et meilleure API (orientée tâches utilisateurs).
 
Un [[../Adaptateur|adaptateur]] est utilisé quand la façade doit respecter une interface particulière et doit supporter un comportement polymorphique.
 
== Diagramme des classes UML ==