Façade (patron de conception)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : Navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Façade (homonymie).

En génie logiciel, le patron de conception (ou design pattern) façade a pour but de cacher une conception et une interface complexe difficile à 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.

[modifier] Exemple

[modifier] Java

L'exemple suivant cache une API de gestion de calendrier compliquée, derrière une façade plus simple. Il affiche :

Date: 1980-08-20
20 jours après : 1980-09-09
 import java.util.*;
 
 // Façade 
 class UserfriendlyDate {
     GregorianCalendar gcal;
 
     public UserfriendlyDate(String isodate_ymd) {
         String[] a = isodate_ymd.split("-");
         gcal = new GregorianCalendar(Integer.parseInt(a[0]),
               Integer.parseInt(a[1])-1 /* !!! */, Integer.parseInt(a[2]));
     }
 
     public void addDays(int days) { 
       gcal.add(Calendar.DAY_OF_MONTH, days); 
     }
 
     public String toString() { 
       return String.format("%1$tY-%1$tm-%1$td", gcal);
     }
 }
 
 // Client 
 class FacadePattern {
     public static void main(String[] args) {  
         UserfriendlyDate d = new UserfriendlyDate("1980-08-20");   
         System.out.println("Date : "+d);   
         d.addDays(20);   
         System.out.println("20 jours après : "+d);
     }
 }
Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Contribuer
Imprimer / exporter
Boîte à outils
Autres langues