Zpo-5-lab

From Studia Informatyczne

Spis treści

Ć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

  1. Czy zastosowanie odpowiednio spreparowanego obiektu obserwatora we wzorcu Observer może zagrozić stabilności aplikacji? Jak musiałby wyglądać ten obiekt?
  2. Czy zastosowanie wzorca Pool of Objects w stosunku do obiektów bezstanowych ma sens? Jeżeli tak, to w jakich sytuacjach?
  3. W jaki sposób można zastąpić obiekty Singleton rozwiązaniami o równoważnej funkcjonalności?

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.