« Patrons de conception/Façade » : différence entre les versions

Contenu supprimé Contenu ajouté
ooo
Aucun résumé des modifications
Ligne 1 :
{{ébauche informatique}}
{{voir homonymes|Façade}}
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]].
 
== Exemple ==
 
=== 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.valueOf(a[0]).intValue(),
Integer.valueOf(a[1]).intValue()-1 /* !!! */, Integer.valueOf(a[2]).intValue());
}
public void addDays(int days) { gcal.add(Calendar.DAY_OF_MONTH, days); }
public String toString() { return new Formatter().format("%1$tY-%1$tm-%1$td", gcal).toString();}
}
''/** "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);
}
}
 
 
{{Portail informatique}}
[[Catégorie:Patron de conception]]
 
[[de:Fassade (Entwurfsmuster)]]
[[en:Façade pattern]]
[[es:Facade (patrón de diseño)]]
[[it:Façade pattern]]
[[ja:Facade パターン]]
[[nl:Façade (informatica)]]
[[pl:Wzorzec fasady]]
[[pt:Façade]]
[[ru:Фасад (шаблон проектирования)]]
[[th:ฟะซาดแพตเทิร์น]]
[[vi:Facade pattern]]