Wzorce projektowe to reużywalne, standardowe rozwiązanie zagadnie-nia/problemu informatycznego, które może pojawić się w procesie wytwarzania/imple-mentacji opro-gramowania. Wzorzec projektowy jest: - Reużywalny – w takiej samej postaci może zostać wielokrotnie zastosowany do rozwiązywania problemu bez względu na dziedzinę projektu/ oprogramowania, - Sprawdzony – przydat-ność wzorca potwier-dzona doświadczeniem nabytym poprzez jego zastosowanie w wielu projektach informa-tycznych – optymalne rozwiązanie danego zagadnienia, -Powszechnie znany – ułatwia wymianę informacji i zwiększa czytelność kodu. Facade należy do wzorców struktu-ralnych które dotyczą sposobów tworzenia większych struktur za pomocą kompozycji obiektów. Facade to uproszczenie dostępu do zbioru wzajemnie powiązanych obiektów poprzez jeden wspólny obiekt. Obiekt ten wykorzystywany jest przez wszystkie inne zewnętrzne obiekty do komunikacji ze zbiorem obiektów „ukrytych” za fasadą. Zastosowanie WP w modelowaniu oprogramowania – w Java wzorzec ten jest używany do obudo-wywania zbioru złożonych klas i dostarcza dla nich prostszego interfejsu. Klasy obsługujące bazy danych z pakietu java.sql stanowią doskonały przykład niskopoziomowych klas, które komunikują się ze sobą w bardzo zawiły sposób. - Do połączenia z baza danych wykorzystywana jest instancja klasy Connet-ion, - Do określania nazw tabel bazy danych i ich pól korzysta sie z klasy DatabaseMetadata poprzez klasę Connetion, - Do konstruowania zapytań w języku SQL, wykorzystuje się klasę Statement, - Poprzez wykonanie zapytania (klasa Statement) otrzymuje się wynik - obiekt klasy ResultSet, - Do określenia nazw kolumn trzeba jeszcze uzyskać instancje klasy Result-Set Metadata. Operowanie wszystkimi tymi klasami może być bardzo trudne, większość wywołań może zwracać wyjątki, przez co kod jest bardzo zagmatwany. Poprzez zbudowanie fasady składającej się z klasy DataBase i klasy resultSet, możemy zbudować łatwiejszy w użyciu system. W ten sposób Fasada zakrywa wiele klas pakietu java.sql
Problem: Brak jednolitej strategii dostępu dla klienta – może korzystać z fasady lub bezpo-średnio z podsystemów. Uniwersalność wzorców analizy - rozważenie przydatności wzorca w modelowaniu rzeczywistości (gdzie jeszcze wzorzec może zostać wykorzystany) - można go stosować w projektowaniu prawie wszystkich systemów informatycznych. Zalety stosowania wzorca w procesie tworzenia oprogramowania: -Dostarczenie jednorodnego interfejsu wyższego poziomu do zbioru różnych interfejsów w systemie, -Ukrycie złożoności podsystemów przed klientem, -Odseparowanie klienta od podsystemów, -Łatwiejsze korzy-stanie z podsystemów, -Niższe koszty pielęgnacji podsystemów, -Możliwość wymiany/ rozbudowy podsystemów. Wady stosowania wzorca w procesie tworzenia oprogramowania: -Stosowanie Fascade może czasami zmniejszyć elastyczność przykrywa-nych klas, -Funkcjonalność systemu może być niepełna i ograniczona jedynie do najpopu-larniejszych operacji, -Klient może odwołać się do obiektu Facade lub bezpośrednio do podsystemów. Wnioski: Wzorzec Facade izoluje klienta od skomplikowanych komponen-tów podsystemów i dostarcza do nich prostszy interfejs do ogólnego użytku. Jednak nie ogranicza zaawansowanemu użytkownikowi dostępu do złożonych klas znajdujących się głębiej. Dodatkowo Facade umożliwia dokony-wanie zmian w przykrywanych podsystemach bez potrzeby modyfikacji kodu klienta i reduku-je liczbę zależności podczas kompilacji. Użytkownik ma możliwość wyboru czy posługiwać się fasadą czy bezpośrednio korzystać z podsystemów.