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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

90Jak widać, nie ma jednego, idealnego rozwiązania. Z powodów, które stanąsię jasne już niedługo, mimo wszystko chyba pierwszy sposób jest lepszy.3.1.3.1 Implementacja ekstensji klasy w ramach tej samej klasyAby zaimplementować ekstensję klasy w języku programowania typu Javaczy C++, musimy stworzyć kontener, który będzie przechowywał referencje doobiektów. Ponieważ chcemy go umieścić w klasie biznesowej, a jej wszystkieobiekty muszą mieć do niego dostęp, użyjemy atrybutu ze słowem kluczowymstatic.Oprócz umieszczenia kontenera warto do klasy dodać odpowiednie metody,które ułatwią czynności dodawania czy usuwania obiektów.(1)public class Film {// Implementacja czesci biznesowejpublic Film() {// Dodaj do ekstensjidodajFilm(this);}// Implementacja ekstensji(2)(3)(4)(5)}/** Ekstensja. */private static Vector ekstensja = new Vector();private static void dodajFilm(Film film) {ekstensja.add(film);}private static void usunFilm(Film film) {ekstensja.remove(film);}/** Wyswietla ekstensje. Metoda klasowa */public static void pokazEkstensje() {System.out.println("Ekstensja klasy Film: ");for(Film film : ekstensja) {System.out.println(film);}}3-2 Implementacja zarządzania ekstensją w ramach tej samej klasyKod zawierający przykładową implementację jest przedstawiony na listingu3-2. Ciekawsze rozwiązania (poniższe numery w nawiasach odnoszą się doodpowiednich miejsc na listingu):• (1). Wróćmy na chwilę do naszego drugiego pytania dotyczącego sposobudodawania obiektów do ekstensji. Pierwsze rozwiązanie, jakie się nasuwa,to po prostu ręczne, wywoływane przez programistę, dodawanienowo utworzonego obiektu do kontenera. Czy to będzie działać? Oczy-

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

Saved successfully!

Ooh no, something went wrong!