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