Co to jest hermetyzacja?
Hermetyzacja to jedna z podstawowych zasad programowania obiektowego. Polega na ukrywaniu wewnętrznych elementów klasy, takich jak pola lub metody pomocnicze, przed bezpośrednim dostępem z zewnątrz. Dostęp do danych powinien odbywać się przez wyznaczone metody klasy, np. gettery, settery lub inne metody publiczne.
Celem hermetyzacji jest ochrona obiektu przed niekontrolowaną modyfikacją oraz uporządkowanie sposobu korzystania z klasy.
Modyfikatory dostępu
W wielu językach obiektowych stosuje się modyfikatory dostępu:
private- element dostępny tylko wewnątrz klasy,protected- element dostępny w klasie i klasach dziedziczących,public- element dostępny z zewnątrz,- w C++ dodatkowo można używać funkcji zaprzyjaźnionych (
friend), które mają dostęp do prywatnych elementów klasy.
Przykład w C++
class Konto {
private:
double saldo;
public:
void wplac(double kwota) {
if (kwota > 0) {
saldo += kwota;
}
}
double pobierzSaldo() {
return saldo;
}
};
Pole saldo jest prywatne, więc nie można go dowolnie zmienić spoza klasy. Zmiana salda odbywa się tylko przez metodę wplac, która może sprawdzić poprawność danych.
Dlaczego hermetyzacja jest ważna?
Hermetyzacja:
- chroni dane obiektu,
- ogranicza błędy wynikające z niepoprawnego użycia klasy,
- ułatwia zmianę implementacji bez wpływu na kod korzystający z klasy,
- poprawia czytelność i bezpieczeństwo programu.
W pytaniach egzaminacyjnych hermetyzacja jest często opisywana jako ukrywanie składników klasy i udostępnianie ich tylko metodom tej klasy lub funkcjom zaprzyjaźnionym.