I. Synonyme▲
Frontal
II. Synopsis▲
Unifie et simplifie 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é.
III. 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.
IV. 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.
V. 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.