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. PrototypePrzeznaczenie (cytat z ksiki <strong>GoF</strong>):Wzorzec ten specyfikuje rodzaje tworzonych obiektów, uywajc prototypowego egzemplarza,a take tworzy nowe obiekty, kopiujc ten prototyp.Przeznaczenie (cytat z fluffycat):Tworzy nowe obiekty przez sklonowanie obiektów ustanowionych jako prototypy.Opis: Przykład moe wyglda nastpujco. Jest urzdzane przyjcie z przygotowanwczeniej list da. Szef kelnerów wie zatem jakie sztuce naley poda do zestawuwszystkim gociom - ma odpowiednie kwalifikacje. Nie wiedz tego jednak nowo przyjcikelnerzy, na dodatek nie maj zbyt dobrej pamici. Dlatego szef kelnerów musi pokaza im,jakie sztuce naley rozłoy na stole. Nie moe poda wicej ni dwóch sztuców na raz, bokelnerzy nie zapamitaj albo si pomyl. Tak wic gdy kelner zobaczy sztuce idzie dopojemnika z nimi (PrototypeFactory) wyszukujc pojemnik z dokładnie takimi sztucamijakie pokazał mu szef i wybiera odpowiedni ilo. Nastpnie zanosi je na stół.Problem:Rozwizanie:Klasa główna:_DP_C_<strong>GoF</strong>_Prototypepackage pk.dydakt.to.dp.c.gof.prototype;public class _DP_C_<strong>GoF</strong>_Prototype {}public static void main(String[] args) {System.out.println("Creating a Prototype Factory with " +" a SoupSpoon and a SaladFork");PrototypeFactory prototypeFactory =new PrototypeFactory(new SoupSpoon(), new SaladFork());AbstractSpoon spoon =prototypeFactory.makeSpoon();AbstractFork fork =prototypeFactory.makeFork();System.out.println("Getting the Spoon and Fork name:");System.out.println("Spoon: " + spoon.getSpoonName() +", Fork: " + fork.getForkName());System.out.println(" ");System.out.println("Creating a Prototype Factory " +"with a SaladSpoon and a SaladFork");prototypeFactory =new PrototypeFactory(new SaladSpoon(), new SaladFork());spoon = prototypeFactory.makeSpoon();fork = prototypeFactory.makeFork();System.out.println("Getting the Spoon and Fork name:");System.out.println("Spoon: " + spoon.getSpoonName() +", Fork: " + fork.getForkName());}Klasy wzorca:PrototypeFactorypackage pk.dydakt.to.dp.c.gof.prototype;21

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

Saved successfully!

Ooh no, something went wrong!