La Façade

Sébastien MERIC

Version 1.0

Remerciements : Stefan Bertholon

- Titre : La Façade

- Auteur : Sébastien MERIC

- Parution : 26 avril 2003

- Mise à jour : 3 mai 2013

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Sébastien MERIC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Synonyme

- II. Synopsis

- III. Exploration

- IV. Structure

- V. Implémentation

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.