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