Możesz pomóc, dodając odniesienia lub usuwając niepublikowaną zawartość. Zobacz stronę dyskusji, aby uzyskać więcej informacji.
W inżynierii oprogramowania , wzór projektu (lub wzorzec projektowy ) fasada ma na celu ukryć złożoną konstrukcję i trudne do zrozumienia interfejsu (czym ukazał złożoność „naturalnie” wraz z rozwojem systemu sub-w pytaniu).
Fasada pomaga uprościć tę złożoność, zapewniając prosty interfejs dla podsystemu. Zwykle elewację uzyskuje się poprzez zmniejszenie funkcjonalności tego ostatniego, ale zapewnienie wszystkich niezbędnych funkcji dla większości użytkowników.
Fasada odzwierciedla złożoność interakcji między obiektami biznesowymi uczestniczącymi w przepływie pracy .
Fasada może służyć do:
Adapter jest stosowany, gdy interfejs dobrze zdefiniowane muszą być przestrzegane. Fasada służy do uproszczenia korzystania z API.
Poniższy przykład ukrywa skomplikowany interfejs API do zarządzania kalendarzem za prostszą fasadą. To pokazuje :
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); } }