Zpo-7-lab: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
=Ćwiczenie 7. Wzorce projektowe cz. | =Ćwiczenie 7. Wzorce projektowe cz. III= | ||
==Informacje wstępne== | ==Informacje wstępne== | ||
Ćwiczenie jest realizowane w języku Java w środowisku Eclipse 3.2. | Ćwiczenie jest realizowane w języku Java w środowisku Eclipse 3.2. | ||
Przed przystąpieniem do realizacji ćwiczenia należy zapozanać się z wykładem. | Przed przystąpieniem do realizacji ćwiczenia należy zapozanać się z wykładem. | ||
Ćwiczenie jest | Ćwiczenie jest ostatnią częścią związaną z wzorcami projektowymi. Celem jest zastosowanie kolejnych wzorców w przykładowym systemie obiektowym dotyczącym [[ZPO-bank|banku]]. | ||
==Instalacja== | ==Instalacja== | ||
Linia 11: | Linia 11: | ||
==Zadanie 1== | ==Zadanie 1== | ||
Zaimplementuj w systemie bankowym mechanizm | Zaimplementuj w systemie bankowym mechanizm wykonywania raportów, stanowiący realizację wzorca Visitor. Każdy raport jest obiektem Visitor, który odwiedza kolejne typy rachunków i produktów bankowych (obiektów Element), wykonując na nich operacje specyficzne dla danej klasy elementów. | ||
Stwórz metodę w klasie bank, odpowiedzialną za uruchomienie wykonania raportu, która przyjmuje obiekt Raport jako parametr. | |||
Zaimplementuj następujące raporty: | |||
* obliczający sumę sald na wszystkich rachunkach, których posiadają bieżący typ oprocentowania A | |||
* wykonujący zestawienie wszystkich rachunków o wartości salda powyżej 1000 PLN | |||
==Zadanie 2== | ==Zadanie 2== | ||
Zaimplementuj w systemie bankowym możliwość chronienia niektórych danych rachunku w postaci wzorca Proxy. Wywołania metod pytających o wartość salda, nazwisko właściciela etc. powinny zwracać wartości nieznaczące, np. -1 lub "--nieznany--". | |||
Użycie ochrony powoduje, że nie można odczytać wartości wybranych pól (m.in. nie są one widoczne w raportach). | |||
Metody wprowadzające i usuwające ochronę obiektu Rachunek powinny być dostępne w klasie Bank. | |||
==Pytania do dyskusji== | ==Pytania do dyskusji== | ||
# | # Wzorce Proxy, Adapter i Decorator mimo podobnej struktury różnią się od siebie w bardzo istotny sposób. Dokonaj ich porównania. | ||
# | # Czy obiekty poleceń występujące we wzorcu Command mogą podlegać zarządzaniu przez pulę (wzorzec Pool of Objects)? Odpowiedź uzasadnij. | ||
==Literatura== | ==Literatura== |
Aktualna wersja na dzień 09:38, 30 paź 2006
Ćwiczenie 7. Wzorce projektowe cz. III
Informacje wstępne
Ćwiczenie jest realizowane w języku Java w środowisku Eclipse 3.2. Przed przystąpieniem do realizacji ćwiczenia należy zapozanać się z wykładem. Ćwiczenie jest ostatnią częścią związaną z wzorcami projektowymi. Celem jest zastosowanie kolejnych wzorców w przykładowym systemie obiektowym dotyczącym banku.
Instalacja
Przygotowanie do ćwiczenia polega na zainstalowaniu JDK 5.0 [1] oraz środowiska Eclipse [2] w wersji 3.2 Ćwiczenie jest kontynuacją poprzedniego, dlatego należy prowadzić prace w dotychczasowym projekcie.
Zadanie 1
Zaimplementuj w systemie bankowym mechanizm wykonywania raportów, stanowiący realizację wzorca Visitor. Każdy raport jest obiektem Visitor, który odwiedza kolejne typy rachunków i produktów bankowych (obiektów Element), wykonując na nich operacje specyficzne dla danej klasy elementów.
Stwórz metodę w klasie bank, odpowiedzialną za uruchomienie wykonania raportu, która przyjmuje obiekt Raport jako parametr.
Zaimplementuj następujące raporty:
- obliczający sumę sald na wszystkich rachunkach, których posiadają bieżący typ oprocentowania A
- wykonujący zestawienie wszystkich rachunków o wartości salda powyżej 1000 PLN
Zadanie 2
Zaimplementuj w systemie bankowym możliwość chronienia niektórych danych rachunku w postaci wzorca Proxy. Wywołania metod pytających o wartość salda, nazwisko właściciela etc. powinny zwracać wartości nieznaczące, np. -1 lub "--nieznany--". Użycie ochrony powoduje, że nie można odczytać wartości wybranych pól (m.in. nie są one widoczne w raportach).
Metody wprowadzające i usuwające ochronę obiektu Rachunek powinny być dostępne w klasie Bank.
Pytania do dyskusji
- Wzorce Proxy, Adapter i Decorator mimo podobnej struktury różnią się od siebie w bardzo istotny sposób. Dokonaj ich porównania.
- Czy obiekty poleceń występujące we wzorcu Command mogą podlegać zarządzaniu przez pulę (wzorzec Pool of Objects)? Odpowiedź uzasadnij.
Literatura
- E. Gamma, R. Helm, R. Johnson, J. Vlissides "Design Patterns: Elements of Reusable Object-Oriented Software". Addison-Wesley, 1995.
- D. Gallardo "Java Design Patterns 101". [IBM]
- J. Cooper "Java. Wzorce projektowe". Helion, 2001
- A. Shalloway, J. R. Trott "Programowanie zorientowane obiektowo. Wzorce projektowe". Wydanie II, Helion, 2005.