Kaczki

Transkrypt

Kaczki
Zaimplementować wzorzec projektowy strategia dla mini symulatora kaczek.
„Wzorzec strategia definiuje rodzinę algorytmów, pakuje je jako osobne klasy i powoduje, że są one
w pełni wymienne. Zastosowanie tego wzorca pozwala na to, aby zmiany w implementacji
algorytmów przetwarzania były całkowicie niezależne od klienta, który z nich korzysta.”
[Definicja oraz zadanie pochodzi z książki „Head First Design Patterns”]
Utworzyć MiniSymulatorKaczek. Utworzyć tablicę (ArrayList) Kaczek. Umieścić w niej obiekty
różnych Kaczek. Skłonić wszystkie kaczki do próby latania i kwakania. Wymienić algorytm
realizujący latanie gumowej kaczki – wyposażyć ją w napęd rakietowy.
Klasa Kaczka oraz klasy dziedziczące niej:
• DzikaKaczka,
• PłaskonosKaczka,
• GumowaKaczka,
• WabikKaczka.
W abstrakcyjnej klasie Kaczka zaimplementować metody:
• wyświetl() - metoda abstrakcyjna,
• wykonajKwacz(),
• wykonajLeć(),
• ustawLatanieInterfejs(),
• ustawKwakanieInterfejs().
Interfejsy:
KwakanieInterfejs (metoda kwacz())
LatanieInterfejs (metoda leć())
Klasy implementujące KwakanieInterfejs
Kwacz
NieKwacz
Piszcz
Klasa Piszcz powinna zostać zdefiniowana jako klasa lokalna w konstruktorze klasy
GumowaKaczka.
Klasy implementujące LatanieInterfejs
LatamBoMamSkrzydła
NieLatam
Klasy powinny zostać zdefiniowane jako klasy wewnętrzne w klasie Kaczka
Klasa odpowiedzialna za latanie z napędem rakietowym - lokalna klasa anonimowa, powinna być
zdefiniowana podczas jednego z wywołań metody ustawLatanieInterfejs() w klasie
MiniSymulatorKaczek

Podobne dokumenty