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.

3. AdapterPrzeznaczenie (cytat z ksiki <strong>GoF</strong>):Przekształca interfejs klasy w taki, jakiego oczekuj klienci. Dziki wzorcowi klasy mogwspółpracowa, co bez niego nie byłoby moliwe, poniewa maj niezgodne interfejsy.Przeznaczenie (cytat z fluffycat):Klasa rozszerza inn klas, przejmuje obiekt i sprawia, e zachowuje si on jak klasarozszerzona.Opis: Przykład ilustruje parzenie herbaty w filiance. Mona to zrobi za pomoc torebkiherbaty, która zawiera tyle herbaty ile potrzeba na jedn filiank. Jeli jednak chcielibymyzaparzy herbat z lici, to moemy to zrobi zarówno w filiance jak i np. w czajniczku.Zaparzanie herbaty z lici obsługuje si wic inaczej ni zaparzanie z torebki. Aby zaparzyherbat z lici w filiance naley wic odpowiednio dopasowa sposób parzenia do faktuparzenia jej w filiance. Słuy do tego kulka do parzenia herbaty z lici dopasowujcaparzenie z lici do potrzeb parzenia filianki. Dziki zastosowaniu takiej kulki moemyzarówno załadowa odpowiedni dawk herbaty jak i nie namieci zbytnio limi wfiliance.Problem:Rozwizanie:Klasa główna:_DP_S_<strong>GoF</strong>_Adapterpackage pk.dydakt.to.dp.s.gof.adapter;public class _DP_S_<strong>GoF</strong>_Adapter {public static void main(String[] args) {TeaCup teaCup = new TeaCup();System.out.println("Steeping tea bag");TeaBag teaBag = new TeaBag();teaCup.steepTeaBag(teaBag);}}System.out.println("Steeping loose leaf tea");LooseLeafTea looseLeafTea = new LooseLeafTea();TeaBall teaBall = new TeaBall(looseLeafTea);teaCup.steepTeaBag(teaBall);Klasy wzorca:TeaCuppackage pk.dydakt.to.dp.s.gof.adapter;public class TeaCup {public void steepTeaBag(TeaBag teaBag) {teaBag.steepTeaInCup();}}TeaBagpackage pk.dydakt.to.dp.s.gof.adapter;32

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

Saved successfully!

Ooh no, something went wrong!