Laboratorium 5 - Instytut Sterowania i Systemów Informatycznych
Transkrypt
Laboratorium 5 - Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski Wydział Informatyki, Elektrotechniki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych Informatyka niestacjonarne-zaoczne pierwszego stopnia z tyt. inżyniera Laboratorium Podstaw Modelowania Programów Laboratorium 5 Wstęp do wzorców projektowych — wzorce: Singleton, Dekorator, Fasada i Kompozyt 1 Zadania 1. Narysować diagram klas dla wzorca Singleton 2. Napisać program który będzie zapisywał do pliku tekstowego, w zależności od życzenia użytkownika, albo wprowadzony z klawiatury tekst albo losową liczbę. Każdy sposób wprowadzania danych musi być zawarty w oddzielnej klasie — w programie głównym należy utworzyć dwa obiekty i wywoływać ich metody w zależności od wyboru użytkownika. 3. W jaki sposób zaimplementować wzorzec Singleton tak, aby można go było wykorzystać w programach współbieżnych? Podać przykład takiej implementacji. 4. Narysować diagram klas dla wzorca Dekorator 5. Napisać program do obsługi sklepu. W zależności od decyzji sprzedawcy, klient po dokonaniu zakupu otrzymuje od zera do n dodatkowych produktów: • Maskotka sklepu (wartość 0 PLN) • Smycz do pendrive (wartość 1 PLN) • Rabat w wysokości 10 PLN. Jeśli łączna cena zakupu wszystkich produktów po uwzględnieniu wszystkich rabatów jest ujemna, cena wynosi zero. • Dodatkowy koszt transportu w wysokości 13 PLN (do ceny zakupu należy doliczyć tą kwotę) Program powinien wypisać wszystkie zakupione przedmioty wraz z dodatkami oraz podać łączną cenę wszystkich produktów. 6. Jakie są wady i zalety wzorca Fasada? 7. Zaimplementować klasy służące do • wprowadzania wartości n elementowej tablicy z klawiatury — klasa Klawiatura powinna zawierać funkcję Pobierz() zwracającą tablicę. Wartość n powinna być argumentem konstruktora. • Sortowania tablicy • wypisywania wartości tablicy na ekranie Napisać przykładowy program wykorzystujący powyższe klasy 8. Zmodyfikować program tak, aby odczyt tablicy odbywał się z pliku — klasa Plik powinna zawierać funkcję Odczytaj(nazwaPliku) zwracającą tablicę odczytaną z pliku. Czy jest możliwość sensownego rozwiązania tego zadania bez wykorzystywania wzorca Fasada? Jakie są wady i zalety obu metod? 9. Narysować diagram klas wzorca Kompozyt 10. Zaimplementować strukturę menu prostego edytora tekstu. Wykorzystać wzorzec kompozyt 1 2 Literatura • Head First Design Patterns. Edycja polska, Freeman E. i in., Helion 2005 • Wzorce projektowe Elementy oprogramowania obiektowego wielokrotnego użytku, Gamma E., Helm E., Johnson R., Vlissades J., WNT 2008 2