Zpo-5-lab
Ćwiczenie 5. Wzorce projektowe cz. I
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. Celem ćwiczenia jest zastosowanie wybranych wzorców projektowych 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 Po uruchomieniu środowiska należy zaimportować (menu File->Import->Existing projects into workspace) projekt, w którym będą stosowane wzorce projektowe.
Zadanie 1
Zaimplementuj operacje bankowe w taki sposób, aby stanowiły realizację wzorca Command. Każda operacja powinna być niezależną klasą, implementacją wspólnego interfejsu OperacjaBankowa i posiadać metodę wykonaj(), która powoduje wykonanie specyficznej operacji. Przekazanie parametrów specyficznych dla poszczególnych operacji odbywa się poprzez konstruktor operacji.
Należy zaimplementować operacje wpłaty, wypłaty i przelewu.
Zadanie 2
Zaimplementuj w systemie bankowym mechanizm pozwalający bankowi przekazywać tym właścicielom rachunków, którzy wyrażą na to zgodę, komunikaty. W tym celu zastosuj wzorzec Observer, w którym obiektem obserwowanym jest bank, a obserwatorami - właściciele.
Właściciel rachunku jest obiektem, a docierające do niego komunikaty są dołączane do listy przechowywanej przez Właściciela.
Pytania do dyskusji
- Czy zastosowanie odpowiednio spreparowanego obiektu obserwatora we wzorcu Observer może zagrozić stabilności aplikacji? Jak musiałby wyglądać ten obiekt?
- Czy zastosowanie wzorca Pool of Objects w stosunku do obiektów bezstanowych ma sens? Jeżeli tak, to w jakich sytuacjach?
- W jaki sposób można zastąpić obiekty Singleton rozwiązaniami o równoważnej funkcjonalności?
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.