|
|
Linia 1: |
Linia 1: |
| =Ćwiczenie 8. 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 [[ZPO-bank|banku]].
| |
|
| |
| ==Instalacja==
| |
| Przygotowanie do ćwiczenia polega na zainstalowaniu JDK 5.0 [http://java.sun.com/javase/downloads/index.jsp] oraz środowiska Eclipse [http://www.eclipse.org/downloads] 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". [[http://www-128.ibm.com/developerworks/edu/j-dw-javapatt-i.html IBM]]
| |
| # J. Cooper "Java. Wzorce projektowe". Helion, 2001
| |
| # A. Shalloway, J. R. Trott "Programowanie zorientowane obiektowo. Wzorce projektowe". Wydanie II, Helion, 2005.
| |