Enkapsulacja – co to takiego?

Enkapsulacja (hermetyzacja) jest pojęciem z dziedziny programowania obiektowego.
Chodzi w niej o to, aby ukryć przed użytkownikiem to, co nie jest dla niego istotne.
np. jeśli chcemy sprawdzić numer seryjny produktu, to wywołujemy metodę wyświetlającą ten numer na ekranie, zamiast martwić się czy jest on przechowywany w pamięci jako int, czy może string, a potem używać funkcji wyświetlającej odpowiedni typ danych.

Enkapsulacja jest to zaimplementowanie modelu, w którym obiekty mają przydatne metody, a parametry wewnętrzne są ukrywane, bo wiedza o nich nie przydaje się do niczego.
Dla przykładu, weźmiemy sobie stos. Istotne jest dla nas to, że do stosu możemy dodać element na górę i że możemy zdjąć pierwszy element z góry, nie interesuje nas jak nazywa się zmienna wewnątrz klasy.

Prawdziwe korzyści wynikające z użycia enkapsulacji zauważymy w szczególności w dużych projektach, ale już w małych zobaczymy, że kod będzie bardziej czytelny i lepiej zorganizowany.

Enkapsulacja pozwala nam operować na danych w sposób bliższy do rzeczywistości, na bardziej naturalnym poziomie abstrakcji.


Dla przykładu podajmy obiekt „Piłka” oraz dwa podejścia programistyczne, których opiszemy prostą animację toczącej się piłki.

  • Podejście podstawowe, proceduralne:
    Tworzymy dwie zmienne liczbowe: pozycja_piłki oraz rotacja_piłki. Jeśli chcemy sprawić aby piłka się poturlała, napiszemy coś w tym rodzaju:
    pozycja_piłki++;
    rotacja_piłki++;
    Dla kilku piłek, będziemy musieli napisać pętlę:
    for( int i = 0 ; i < liczba_piłek ; i++ ){
    pozycja_piłki[i]++;
    rotacja_piłki[i]++;
    }
    Jeśli ten kod umieścimy w odpowiedniej pętli (wykonującej się kilka razy na sekundę), możemy utworzyć prostą animację z piłkami toczącymi się po ekranie.
  • Z użyciem enkapsulacji kod będzie wyglądał tak:
    piłki.turlaj();

Więcej w temacie: Hermetyzacja(enkapsulacja) – Wikipedia, wolna encyklopedia