Hermetyzacja

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

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.