Języki i Środowiska Programowania Baz Danych | |
|
3. Metody związane z obiektem Identyfikacja stanu obiektu (np. odczytanie wartości jego atrybutów) oraz zmiany stanu obiektu są możliwe dzięki pewnym procedurom, funkcjom lub operacjom związanym z danym obiektem. W idealnym przypadku, nie powinna istnieć możliwość dostępu do obiektu (lub zmiany jego stanu) bez pośrednictwa metod zdefiniowanych przez projektanta (i/lub programistę). Koncepcja taka pokrywa się z założeniami pojęcia określanego jako abstrakcyjny typ danych (abstract data type, ADT) omawianego nieco dalej. W założeniu ma to przeciwdziałać nieodpowiedzialnym modyfikacjom obiektu (np. naruszeniom prywatności lub spójności przechowywanych w nim danych). W praktyce jednak to założenie okazało się zbyt mocne i w wielu przypadkach zbyt ograniczające. Istnieje szereg argumentów przeciwko takiemu podejściu; wyjaśnimy je przy okazji omawiania pojęcia hermetyzacji. Inaczej mówiąc, obiekty mogą być także obsługiwane przez pewne metody generyczne (np. podstawienie na atrybut, odzyskanie wartości atrybutu) wspólne dla wszystkich obiektów w ramach danego języka programowania.
Rys.10 przedstawia przykład obiektu KONTO, reprezentującego konto bankowe pewnego klienta banku, wraz z dostępnymi metodami przedstawionymi w postaci "otoczki" stanu obiektu. Ma to ilustrować fakt, że stan obiektu jest dostępny tylko przez metody. Takie rozumienie obiektu jest wprowadzane głównie na użytek modelowania pojęciowego i przedstawia sytuację od strony koncepcyjnej. Praktyczne rozwiązania w konkretnych językach lub systemach odbiegają od przedstawionego wyżej modelu, m.in. dlatego, że często metody są składnikami programów aplikacyjnych, a nie danych (w szczególności, nie są przechowywane w bazie danych razem z obiektami, lecz w pamięci operacyjnej w ramach programów). Powyższą koncepcję obiektu trzeba będzie również nieco zmodyfikować w związku z wprowadzonym dalej pojęciem klasy. |
Copyrights © 2006 PJWSTK Materiały zostały opracowane w PJWSTK w projekcie współfinansowanym ze środków EFS. |