Zpo-2-wyk-Slajd5

Z Studia Informatyczne
Wersja z dnia 06:30, 21 sie 2006 autorstwa Bwalter (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Collection: specyfikacja

Collection: specyfikacja


Z uwagi na rolę interfejsu Collection, konieczne było przyjęcie założeń dotyczących jego semantyki, konwencji nazewniczych i projektowych. Collection, jako najogólniejszy typ kolekcji, nakłada najmniejsze ograniczenia na przechowywane w nim elementy: specyfikacja mówi, że przechowuje on po prostu grupę elementów; z tego względu szczegółowe decyzje, dotyczące uporządkowania elementów, duplikatów, dostępu do elementów etc. są podejmowane w dziedziczących interfejsach lub bezpośrednio w implementacjach. Na szczególną uwagę zasługuje niesprawdzany wyjątek java.lang.UnsupportedOperationException, który jest zgłaszany, gdy implementacja interfejsu, mimo syntaktycznej konieczności zdefiniowania metody, nie chce jej obsługiwać. W ten sposób, unikając zubażania interfejsu Collection, obsługiwane są szczególne wypadki, w których konkretna kolekcja celowo jest pozbawiona pewnej funkcjonalności

Interfejs ten nie posiada bezpośredniej implementacji, tzn. nie istnieje w JDK klasa, która implementowałaby tylko ten interfejs. Jednak są struktury danych, które można stworzyć właśnie w ten sposób, np. multizbiór. Jednak dzięki temu wszystkie kolekcje są do pewnego stopnia ze sobą zgodne.

Przyjęto też konwencję, że każda kolekcja posiada dwa konstruktory: bezparametrowy, tworzący pustą kolekcję oraz kopiujący, który zapamiętuje w nowej kolekcji wszystkie elementy należące do starej. Konwencja ta jest stosowana dla wszystkich klas potomnych tego interfejsu: list, zbiorów i kolejek.


<< Poprzedni slajd | Spis treści | Następny slajd >>