10.07.2015 Views

Modelowanie i implementacja systemów informatycznych - pjwstk

Modelowanie i implementacja systemów informatycznych - pjwstk

Modelowanie i implementacja systemów informatycznych - pjwstk

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

923.1.3.2 Implementacja ekstensji klasy przy użyciu klasy dodatkowejInnym sposobem implementacji zarządzania ekstensją jest stworzenie dodatkowejklasy „technicznej” dla każdej klasy biznesowej, np. Filmy dla klasybiznesowej Film lub FilmEkstensja. Dzięki takiemu podejściu cała funkcjonalnośćzwiązana z ekstensją umieszczona jest w oddzielnej klasie i nie „zaśmieca”nam klasy biznesowej. Dodatkową, potencjalną korzyścią jest możliwośćoperowania wieloma różnymi ekstensjami dla np. klasy Film. Chociażpraktyczna przydatność tego może być dyskusyjna. Przykładowy kod jestprzedstawiony na listingu 3-4.(1)(2)public class Film {/* Cialo klasy */}public class FilmEkstensja {private Vector ekstensja = new Vector();(3)(4)(5)}public void dodajFilm(Film film) {ekstensja.add(film);}public void usunFilm(Film film) {ekstensja.remove(film);}public void pokazEkstensje() {System.out.println("Ekstensja klasy Film: ");for(Film film : ekstensja) {System.out.println(film);}}3-4 Implementacja ekstensji klasy jako klasy dodatkowejCiekawsze fragmenty kodu implementacji (z listingu 3-4):• (1). Klasa biznesowa, której ekstensją chcemy zarządzać.• (2). Kontener przechowujący referencje do poszczególnych obiektównależących do ekstensji. Odwrotnie niż w poprzednim rozwiązaniu (podrozdział3.1.3.1, strona 90), atrybut ten nie jest oznaczony jako static(chociaż może być). Dzięki temu, tworząc kolejne instancje klasyFilmEkstensja, możemy tworzyć wiele ekstensji dla jednej klasy.• (3), (4) Metody umożliwiające dodawanie oraz usuwanie obiektów do/zekstensji.• (5). Pomocnicza metoda wyświetlająca ekstensję.Porównajmy ze sobą dwie implementacje, a właściwie listingi (3-2 oraz3-4) i zastanówmy się, czy w tym ostatnim czegoś nie brakuje? No tak - nie ma

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!