140 likes | 334 Views
Referat 2 Ekstensja klasy. Referat przygotowali: Michał Pasierb Konrad Radzik. Plan prezentacji. Implementacja ekstensji klasy przy użyciu : Tablic statycznych Kolekcji Implementacja ekstensji: W ramach klasy Przy użyciu klasy zewnętrznej. Ekstensja klasy (class extent) (1).
E N D
Referat 2 Ekstensja klasy Referat przygotowali: Michał Pasierb Konrad Radzik
Plan prezentacji Implementacja ekstensji klasy przy użyciu: • Tablic statycznych • Kolekcji Implementacja ekstensji: • W ramach klasy • Przy użyciu klasy zewnętrznej
Ekstensja klasy (class extent) (1) Jest to aktualny (zmienny w czasie) zestaw wszystkich wystąpień tej klasy. Ekstensja klasy w implementacji oznacza specjalną strukturę danych. Ta struktura stanowi skład obiektów, przechowując wszystkie obiekty będące członkami danej klasy.
Wystąpienie klasy • Pojęcie wystąpienie klasy (instancja klasy) oznacza obiekt, który jest “podłączony” do danej klasy, jest jej członkiem. • Wystąpienia mogą być: bezpośrednie i pośrednie. • Obiekt jest wystąpieniem bezpośrednim swojej klasy i wystąpieniem pośrednim wszystkich jej nadklas.
Ekstensja klasy (2) • jest to zbiór wszystkich wystąpień danej klasy (bezpośrednich i pośrednich), ale obcięty do atrybutów wyspecyfikowanych w tej klasie, Opis diagramu: K1 {abstract} EK1 = {O2, O3, O4}, EK2 = {O2}, EK3 = {O3} EK4 = {O4} K2 K3 K4 O4 O2 O3
Zastosowanie tablic statycznych do implementacji Tablica statyczna to taka, której rozmiar jest ustalany w momencie kompilacji programu. Zalety : • Pozwala na szybki i wydajny dostęp do dowolnego elementu tablicy(swobodny).
Wady tablic statycznych • podczas wykonywania programu rozmiar się nie zmienia • można przechowywać dane tylko jednego typu • trudniejszy niż w kolekcjach sposób wyświetlania konkretnego elementu • nie ma zaimplementowanych użytecznych metod obsługi tablic
Zastosowanie kolekcji W kolekcjach można umieszczać obiekty o dowolnych typach. Ze względu na sposób implementacji można spośród nich wyodrębnić kilka rodzajów kolekcji. Są bardziej zaawansowanymi strukturami niż tablice, posiadają własne metody, które ułatwiają wykonywanie na nich operacji (np. dodawanie, usuwanie, przeglądanie, itp.)
Przykłady kolekcji • Wektor (Vector) • Struktura danych wykorzystująca tablice alokowane dynamicznie • Optymalne wstawianie i usuwanie ostatniego elementu • Lista (LinkedList) • Brak dostępu swobodnego • Bardzo wolne przechodzenie przez cale kolekcje • Tablica haszujaca (Hashtable) • Bardzo szybkie wyszukiwanie • Brak kolejności elementów (dostęp do elementów za pomocą kluczy)
Iterator Iterator służy do przemieszczania się po elementach kolekcji i wybierania kolejnych obiektów. Pozwala też na usuwania elementów. Jest wygodny w użyciu ponieważ, niepotrzebna jest znajomość specyfiki używanej kolekcji (metod, sposobu indeksowania, itp.).
Implementacja ekstensji w ramach klasy Zalety i wady: • Łatwość implementacji • Dostęp do ekstensji z każdego obiektu tej klasy (modyfikator dostęp do ekstensji) Przykłady: Tablica statyczna Kolekcja
Implementacja ekstensji przy użyciu klasy zewnętrznej • przeniesienie logiki implementacji ekstensji do innej dedykowanej klasy (uproszczenie klasy przechowywanej) Przykłady: Tablica statyczna Kolekcja
Fabryka klas Fabryka klas służy do tworzenia nowych wystąpień klasy i przechowania do nich asocjacji. Fabryka klas może działać z każdą klasą.
Przykład Object Factory Język Java – klasa BorderFactory. Służy do tworzenia standardowych obiektów implementujących interfejs Border (wyjaśnienie: Border w gui jest to ramka). Korzyści: kiedy jest to możliwe BorderFactory zwraca obiekty dzielone.