Laboratorium 8

Transkrypt

Laboratorium 8
Wzorce projektowe - Laboratorium 8
mgr Agnieszka Zbrzezny
23 maja 2016
Zadania
1. Zaimplementuj:
2. Narysuj diagramy klas dla przykładów z ftp.
3. Jaka jest różnica pomiędzy Virtual Proxy, Remote Proxy, Protection proxy i Smart reference?
4. Zaimplementuj mechanizm robienia kubka herbaty przy użyciu pełnomocnika.
5. Zaimplementuj aplikację, której zadaniem jest rysowanie różnych obiektów za pomocą
różnych komponentów. Aplikacja taka może posiadać abstrakcyjny interfejs reprezentujący narzędzie do rysowania implementowany przez klasy konkretnych narzędzi. Klasa
główna będzie wywoływać odpowiednie narzędzie do rysowania - w zależności od tego w
jakim będzie stanie.
6. Zaimplementuj obsługę telewizora pilotem. Użyj wzorca Stan. Pilot powinien: włączać i
wyłączać tv, zmieniać kanał, wyświetlać numer obecnego kanału.
7. Zaimplementuj mechanizm autoryzacji. Poszczególne stany powinny wiedzieć, na jaki
inny stan zmodyfikować stan obiektu w zależności od zaistniałych okoliczności. Sama
klasa Autoryzacja powinna dostarczać metod pozwalających na odczyt oraz zmianę aktualnego stanu i metody, udostępniających obiekty wszystkich stanów, w jakich może się
znaleźć dana klasa. Głównym stanem klasy Autoryzacja jest SparwdzanieStan – sprawdza
on login oraz hasło i w zależności od wyniku sprawdzania uruchamia stan: AutoryzacjaPoprawnaStan – gdy zarówno login, jak i hasło są poprawne, BladAutoryzacjiStan – gdy
1
login lub hasło jest błędne, BladAutoryzacji3RazyStan – gdy trzy razy pod rząd podano
błędny login i hasło (jego zadaniem jest zablokowanie możliwości logowania na 30 sekund.
Gdy stan ten jest ustawiony, przy pierwszym wywołaniu metody sprawdź (wywołanie to
następuje z poziomu stanu SprawdzanieStan) czy zainicjowana zostaje zmienna przechowująca aktualny czas. Następnie stan ten staje się domyślny na 30 sekund, nie pozwalając
tym samym na zalogowanie się. Po upłynięciu 30 sekund stan BladAutoryzacji3RazyStan
sam ustala stan klasy Autoryzacja ponownie na stan Sparwdzanie-Stan, co pozwala na
dokonanie kolejnych prób logowania (po 3 nieudanych następuje ponowna blokada na 30
sekund)).
8. Zbuduj prosty parser języka opisanego składnią XML, posiadającego dwa elementy:
<liczba> z wartością liczbową
<tekst> z wartością tekstową.
2

Podobne dokumenty