Wzorce projektowe

Transkrypt

Wzorce projektowe
Wzorce projektowe - Laboratorium 8
mgr Agnieszka Zbrzezny
30 maja 2016
Zadania
1. Jakie jest najczęstsze wykorzystanie wzorca MVC?
2. Kiedy NIE należy wykorzystywać wzorca MVC? Jakie są jego wady?
3. Jakie zadania pełnią: Model, Widok i Kontroler we wzorcu MVC?
4. Jakie wzorce projektowe wykorzystują: Model, Widok i Kontroler we wzorcu MVC?
5. Napisać program do przechowywania informacji o nazwiskach i telefonach wykorzystując
wzorzec MVC (może być również w PHP).
6. Należy zaimplementować klasę, której obiekty będą mogły się znajdować w trzech różnych
stanach (można skorzystać z zadania 6 z poprzedniego laboratorium), a następnie trzy
różne klasy typu obserwator prezentujące w różny sposób aktualny stan obiektów.
7. Należy przygotować fasadę pośredniczącą w dostępie do trzech innych elementów podsystemu. Następnie zaimplementować dekorator dla fasady udostępniający zarówno metody
fasady jak i metody zwracające dane w zmienionej formie (można wykorzystać zadanie 1
z laboratorium 6).
8. Należy stworzyć abstrakcyjną fabrykę i jej trzy konkretne implementacje (można wykorzystać zadanie 7 z laboratorium 4)
• Lista instancji konkretnych fabryk ma być dostępna z singletonu w postaci kolekcji.
• Klient pobiera referencję do konkretnej fabryki z singletonu (zwracany jest typ fabryki abstrakcyjnej).
• Możliwość dodawanie i usuwania fabryk zapisanych w singletonie.
9. Zadanie 1 z http://edu.pjwstk.edu.pl/wyklady/zap/scb/W5/W5.htm#W5.9
10. Dostarczyć wizualizacji zakupow w zadaniu z internetową kwiaciarnią (z wykładu 5),
korzystając z wzorca MVC.
11. Wybierz odpowiednie wzorce do rozwiązania problemów. Każdą implementację poprzyj
uzasadnieniem tekstowym (w pliku tekstowym).
(a) Stwórz obiekt cache’ujacy słownik meta danych (information_schema, dictionary)
bazy danych (mySql, Oracle). Zapewnij istnienie dokładnie jednego egzemplarza
słownika w systemie. Zrealizuj wariant implementacji:
• wczesna inicjalizacja
1
• późna inicjalizacja
(b) Napisać program który pozwala wyświetlić zawartość pliku na różne sposoby (w
zależności od jego typu). Jeżeli wybrany plik będzie plikiem tekstowym (*.txt)
należy wyświetlić jego zawartość, dla skryptów (*.sh) wyświetlić pierwszą linijkę
pliku, a dla reszty formatów wyświetlić komunikat o braku wsparcia.
(c) Zrobić szkielet aplikacji do obsługi drukarki przyjmującej stany zgodnie z poniższym
diagramem (czuwanie <->drukowanie). Wpierać polecenia: start, stop, off, abort.
Pierwsze 3 polecenia powinny być dostępne w trybie czuwania, ostatnie tylko podczas
drukowania. Proces drukowania rozpoczyna się z chwilą wywołania polecenia start()
i trwa aż programista wywoła stop().
2