|
|
|
|
La façade |
|
|
 |
|
|
|
|
|
26 Avril 2003 |
|
|
Version 1.0 |
|
|
Par Sébastien MERIC |
|
|
Remerciements : Stefan Bertholon |
|
Synonyme
Frontal
Synopsis
Unifie et simplie l'interface d'un sous-système cohérent et éventuellement autonome. Forme
donc un point d'entrée simplifié dans une API. La façade permet en effet de limiter les points
d'entrée d'une API, ce qui a comme effet bénéfique pour votre ensemble de classes, s'il est
complexe, d'avoir une chance d'être utilisé.


Exploration
Lorsque vous développez un module, fonctionnel ou technique, les chances pour que l'interface
de ce module soit importante sont grandes. En effet, si je considère ici l'interface comme étant
l'ensemble des méthodes (et attributs) publics de toutes les classes présentes, et que l'on
part sur un ensemble de 10 classes ayant chacune 5 méthodes publiques (petit module), on se
retrouve avec la bagatelle de 50 méthodes à découvrir. L'architecture n'est pas lisible au
premier coup d'oeil, il faut donc simplifier l'utilisation de votre API.
L'utilisation d'une façade qui transforme votre ensemble de classes en un composant facilite
l'utilisation et donne du même coup une chance pour que vos efforts servent plusieurs fois et
sans votre intervention. Elle vous donne également la chance de décrire le tout sous la forme d'un
javabean (ou toute autre méthode de description de composants pour d'autres langages) et même
facilite l'écriture d'un assistant.
Structure
La structure est triviale et expliquée dans le schéma précédent, inutile de répéter. Je vous
donne exceptionnellement un exemple d'utilisation sous la forme d'un diagramme de séquences dans
cette rubrique, je pense que ce sera plus parlant.

Implémentation
Là encore, j'ai l'impression que le pattern mérite d'être connu, mais qu'il est très simple
à comprendre. Du coup, je ne pense pas qu'il soit nécessaire de vous présenter une implémentation de
celui-ci. Néanmoins, si je reçois de nombreux messages privés pour qu'une
implémentation soit présentée, je le ferais quand même.
|