12.07.2015 Views

Podsumowanie wzorców projektowych GoF

Podsumowanie wzorców projektowych GoF

Podsumowanie wzorców projektowych GoF

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5. FacadePrzeznaczenie (cytat z ksiki <strong>GoF</strong>):Zapewnia jednolity interfejs dla podsystemu zawierajcego wiele interfejsów. Definiujeinterfejs wyszego poziomu, co ułatwia korzystanie z podsystemu.Przeznaczenie (cytat z fluffycat):Jedna klasa zawiera metod realizujc złoony proces wywoła metod innych klas.Opis: Przykład pokazuje, w jaki sposób klient restauracji nie troszczc si o szczegóły moeskierowa zamówienie na herbat do kelnera. Prosi on kelnera o zrobienie filianki herbaty.Korzysta jedynie z ogólnego opisu tego, czego oczekuje, czyli włanie z interfejsu Facade. Toimplementacja tego interfejsu, któr moe by zespół osób składajcych si z osobyodpowiedzialnej za przygotowanie filianki, za znalezienie torebki herbaty, za przygotowaniewrztku, za zalanie torebki herbaty wrztkiem współpracuje ze sob komunikujc siwzajemnie w sposób niewidoczny dla klienta fasady zajmuje si realizacj ogólnegozamówienia klienta na poziomie bardziej szczegółowym. Mona powiedzie, e ten zespółosób skrywa si za fasad ogólnego zamówienia.Problem: JakRozwizanie: PrzezKlasa główna:_DP_S_<strong>GoF</strong>_Facadepackage pk.dydakt.to.dp.s.gof.facade;public class _DP_S_<strong>GoF</strong>_Facade {}public static void main(String[] args) {FacadeCuppaMaker cuppaMaker = new FacadeCuppaMaker();FacadeTeaCup teaCup = cuppaMaker.makeACuppa();System.out.println(teaCup);}Klasy wzorca:FacadeWaterpackage pk.dydakt.to.dp.s.gof.facade;public class FacadeWater {boolean waterIsBoiling;public FacadeWater() {setWaterIsBoiling(false);System.out.println("behold the wonderous water");}public void boilFacadeWater() {setWaterIsBoiling(true);System.out.println("water is boiling");}public void setWaterIsBoiling(boolean isWaterBoiling) {waterIsBoiling = isWaterBoiling;}public boolean getWaterIsBoiling() {38

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!