Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS JAVA FAQs TUTORIELS JAVASEARCH SOURCES LIVRES OUTILS, EDI & API ECLIPSE NETBEANS BLOG DISCUSSIONS TV
Trucs et astuces
Validité des paramètres
Documenter votre code
Assertions
Tests unitaires
Design patterns - GOF
Adaptateur
Composite
Décorateur
etat
Façade
Kit
Monteur
Pont
Proxy
Singleton
Design patterns - Avalon
IOC - Inversion Of Control
SOC - Seperation Of Concerns
COP - Component Orientated Programming
SOP - Service Orientated Programming
Autres articles
Cahier
XML Sax en java
Fractal
AspectJ

Voir aussi
Patterns du GRASP
héritage avec des EJB Entiy CMP

Ressouces java
Informations
Cours
Livres
FAQ
Outils
EDI
Ressources uml
Cours
Livres
Forums d'entraide
Géneral Java
J2EE
JBuilder
Outils EDI
Méthodes/UML/Mérise


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é.

Sans façade

Avec façade

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.

Diagramme de sequence pour la façade

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.

Copyright (c) 2003 Sébastien MERIC. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover Texts being La façade, and Back-Cover Texts being Ce document à été écrit pour la communauté de développeurs francophones "www.developpez.com". A copy of the license is included in the section entitled "GNU Free Documentation License".
/java/uml/facade  

Responsables bénévoles de la rubrique Java : Christophe Jollivet et Eric Siber - Contacter par EMail :
Vos questions techniques : forum d'entraide Java - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.