Zpo-5-lab: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
(Nie pokazano 1 pośredniej wersji utworzonej przez tego samego użytkownika) | |||
Linia 1: | Linia 1: | ||
=Ćwiczenie 5. | =Ćwiczenie 5. Wzorce projektowe cz. I= | ||
==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. | ||
Celem ćwiczenia jest | Celem ćwiczenia jest zastosowanie wybranych wzorców projektowych w przykładowym systemie obiektowym dotyczącym [[ZPO-bank|banku]]. | ||
==Instalacja== | ==Instalacja== | ||
Przygotowanie do ćwiczenia polega na zainstalowaniu [http://java.sun.com/javase/downloads/index.jsp | 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 | ||
Po uruchomieniu środowiska | Po uruchomieniu środowiska należy zaimportować (menu File->Import->Existing projects into workspace) [[media:zpo-5-lab.zip|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== | ==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== | ==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. |
Aktualna wersja na dzień 09:36, 30 paź 2006
Ć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.