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