HERMETYZACJA DANYCH
Transkrypt
HERMETYZACJA DANYCH
HERMETYZACJA DANYCH CECHY KLAS OBIEKTOWYCH (POLA, METODY, POZIOMY PRYWATNOŚCI DANYCH) Pojęcia Klasa to definicja obiektu, zawierająca stan obiektu, określony wartościami pól, oraz możliwe zachowanie, określone dostępnymi metodami. Obiekt to utworzony egzemplarz (instancja) określonej klasy, który posiada własny, indywidualny stan i zbiór zachowań. Metoda to funkcja lub procedura, skojarzona z ogółem klasy lub poszczególnymi jej obiektami; określa możliwe zachowania Pole (Właściwość) to zmienna dowolnego typu, skojarzona z ogółem klasy lub poszczególnymi jej obiektami; określa aktualny stan obiektu Dziedziczenie to mechanizm definiowania nowej klasy na bazie już istniejącej, wzbogacając ją o nowe pola, metody lub zmieniając zakres ich widoczności. Hermetyzacja Hermetyzacja nazywana jest również enkapsulacją Jedno z założeń paradygmatu programowania obiektowego Polega na ukrywaniu informacji - ukrywanie pewnych danych składowych lub metod w obiektach danej klasy tak, aby były one dostępne tylko dla metod wewnętrznych danej klasy lub dla metod z klas z nią zaprzyjaźnionych. Z pełną enkapsulacją mamy do czynienia wtedy gdy dostęp do wszystkich pól w klasie jest możliwy tylko i wyłącznie poprzez metody, lub inaczej: gdy wszystkie pola w klasie znajdują się w sekcji prywatnej (lub chronionej). Zalety hermetyzacji Ukrywanie wewnętrznej struktury obiektu jest bardzo ważne z kilku powodów: obiekt taki jest odizolowany, a więc nie jest narażony na celowe, bądź niezamierzone działanie ze strony użytkownika obiekt ten jest chroniony od niepożądanych referencji ze strony innych obiektów. dzięki ukryciu wewnętrznej struktury obiektu, można uzyskać jego przenośność. Innymi słowy, zastosować definiującą go klasę w innym fragmencie kodu, czy też programie. Powody stosowania hermetyzacji Uodparnia tworzony model na błędy polegające na przykład na błędnym przypisywaniu wartości oraz umożliwia wykonanie czynności pomocniczych Lepiej oddaje rzeczywistość. Umożliwia rozbicie modelu na mniejsze elementy. Poziomy prywatności danych Zmienna składowa lub metoda może mieć trzy różne poziomy dostępności: Publiczny (public) Prywatny (private) Chroniony (protected) Public Nie ma ograniczeń Składnik posiadający ten modyfikator jest dostępny dla dowolnej klasy, czyli z poziomu dowolnego kodu Private Składnik posiadający ten modyfikator jest dostępny jedynie w obrębie klasy, w której się znajduje Protected Składnik posiadający ten modyfikator jest dostępny jedynie w obrębie klasy, w której się znajduje oraz w klasach dziedziczących Przykład class Osoba { private int id; public string name; protected string info; public int getId() { return id; } public void setId(int id) { this.id = id; } }