Hermetyzacja

Hermetyzacja (enkapsulacja, kapsułkowanie) – jedno z założeń programowania obiektowego. Polega na ukrywaniu pewnych danych składowych lub metod obiektów danej klasy tak, aby były one dostępne tylko metodom wewnętrznym danej klasy lub funkcjom zaprzyjaźnionym.

Przykład 1. (settery i gettery)

#include <iostream>
using namespace std;
class Klasa {
  private:
    int pole;
  public:
    void setPole(int p) {
      pole = p;
    }
    int getPole() {
      return pole;
    }
};
int main() {
  Klasa Obiekt;
  Obiekt.setPole(1);
  cout << Obiekt.getPole();
  return 0;
}

Wyjaśnienie przykładu
Prywatny (private) atrybut pole, ma ograniczony dostęp.
Metoda publiczna setPole() przyjmuje parametr (p) i przypisuje go do atrybutu pole (pole = p).
Metoda public getPole() zwraca wartość pole atrybutu private .
Wewnątrz main() tworzymy obiekt klasy Klasa. Teraz możemy użyć metody setPole(), aby ustawić wartość atrybutu private na 1. Następnie wywołujemy metodę getPole() na obiekcie, aby zwrócić wartość.

Dlaczego kapsułkowanie?
  • Za dobrą praktykę uważa się deklarowanie atrybutów klasy jako prywatnych (tak często, jak to tylko możliwe). Hermetyzacja zapewnia lepszą kontrolę nad danymi, ponieważ Ty (lub inni) możecie zmienić jedną część kodu bez wpływu na inne części.
  • Zwiększone bezpieczeństwo danych.

Przykład 2.