Zpo-7-lab

From Studia Informatyczne

Spis treści

Ć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

  1. Wzorce Proxy, Adapter i Decorator mimo podobnej struktury różnią się od siebie w bardzo istotny sposób. Dokonaj ich porównania.
  2. Czy obiekty poleceń występujące we wzorcu Command mogą podlegać zarządzaniu przez pulę (wzorzec Pool of Objects)? Odpowiedź uzasadnij.

Literatura

  1. E. Gamma, R. Helm, R. Johnson, J. Vlissides "Design Patterns: Elements of Reusable Object-Oriented Software". Addison-Wesley, 1995.
  2. D. Gallardo "Java Design Patterns 101". [IBM]
  3. J. Cooper "Java. Wzorce projektowe". Helion, 2001
  4. A. Shalloway, J. R. Trott "Programowanie zorientowane obiektowo. Wzorce projektowe". Wydanie II, Helion, 2005.