Abstrakcja
Abstrakcja to pojęcie z łaciny abstractio, co oznacza oderwanie.
Abstrakcja jest jak stratna konwersja, bo z pełnego w szczegóły konkretu, odrywamy pewną, lecz nieistotną część. W ten sposób uzyskujemy uproszczoną postać o regularnym kształcie o której łatwiej jest myśleć.
Przykłady:
- Mapa jest abstrakcją, bo na kawałku papieru ukazuje obszar, który w rzeczywistości jest znacznie większy. Mapa ukrywa nieistotne szczegóły tak, aby nie przysłaniały nam istoty problemu jaki potrzebujemy rozwiązać (np. z określeniem drogi).
- W świecie 3D abstrakcja jest wykorzystywana do uproszczenia obliczeń w trakcie wykrywania kolizji np. między domkiem, a piłką. Jeśli domek przedstawimy jako sześcian, a piłkę jako kulę, to wówczas obliczenia stają się znacznie prostsze, ponieważ bazujemy na podstawowych bryłach geometrycznych.
Wybrana abstrakcja toruje myślenie o problemie. Jednakże nie zawsze jej użycie ma sens.
Abstrakcja jest zasadna tylko wtedy, jeśli ukrywa wyłącznie nieistotne szczegóły. W takim przypadku ułatwia kontrolowanie złożoności, ponieważ bazujemy na nowym poziomie semantycznym.
Celem abstrakcji nie jest bycie niejasnym, ale stworzenie nowego poziomu semantycznego, na którym można być absolutnie precyzyjnym.
Edsger Dijkstra
Kiedy ukrywanie szczegółów nie sprawdza się?
Chociaż głównym zadaniem abstrakcji jest ukrywanie szczegółów to należy pamiętać, że jej celem nie ukrycie wszystkiego. To tak jakby stosować nazywanie zmiennych w kodzie przypadkowymi ciągami liter. Te nazwy nic nie będą mówić, ani o wartościach, ani o kontekście ich użycia.