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.

4. BridgePrzeznaczenie (cytat z ksiki <strong>GoF</strong>):Oddziela abstrakcj od jej implementacji, tak by mogły si zmienia niezalenie jedna oddrugiej.Przeznaczenie (cytat z fluffycat):Abstrakcja i implementacja znajduj si w rónych hierarchiach klas.Opis: Przykład przyrzdzania wody sodowej o rónych smakach. Smak to implementacja,któr wybieramy najpierw. Na wybranej implementacji moemy eksperymentowa poprzezabstrakcj, jak jest wybór iloci wody sodowej. Ilo moe by dowolna dziki odpowiedniejimplementacji zapewniajcej stenie soku w wodzie sodowej niezalene od ilociprzyrzdzonego napoju. Mona dodawa nowe smaki (zmiana implementacji) niezalenie odsposobu zarzdzania iloci napoju (stała abstrakcja). Mona te zmienia iloprzyrzdzanego napoju (zmiana abstrakcji) niezalenie od smaków jakimi dysponujemy (stałaimplementacja). Dziki takiej separacji rónych zjawisk otrzymujemy elastyczno wkreowaniu rónych napojów. Nb. moemy si pokusi o zmian stenia soku?Problem: JakRozwizanie: PrzezKlasa główna:_DP_S_<strong>GoF</strong>_Bridgepackage pk.dydakt.to.dp.s.gof.bridge;public class _DP_S_<strong>GoF</strong>_Bridge {public static void testCherryPlatform() {SodaImpSingleton sodaImpSingleton =new SodaImpSingleton(new CherrySodaImp());System.out.println("testing medium soda on the cherry platform");MediumSoda mediumSoda = new MediumSoda();mediumSoda.pourSoda();System.out.println("testing super size soda on the cherry platform");SuperSizeSoda superSizeSoda = new SuperSizeSoda();superSizeSoda.pourSoda();}public static void testGrapePlatform() {SodaImpSingleton sodaImpSingleton =new SodaImpSingleton(new GrapeSodaImp());System.out.println("testing medium soda on the grape platform");MediumSoda mediumSoda = new MediumSoda();mediumSoda.pourSoda();System.out.println("testing super size soda on the grape platform");SuperSizeSoda superSizeSoda = new SuperSizeSoda();superSizeSoda.pourSoda();}public static void testOrangePlatform() {SodaImpSingleton sodaImpSingleton =34

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

Saved successfully!

Ooh no, something went wrong!