Absztrakció alatt általában azt értjük, hogy egy dologról csak a legfontosabb, a cél szempontjából lényeges jellemzőket tartjuk meg, a többit elhagyjuk vagy elrejtjük, hogy egyszerűbbé és újrafelhasználhatóbbá tegyük a leírást.
Az absztrakció arra vonatkozik, hogy a szó szerinti ("valós" vagy "konkrét") adatok vagy más információk használatából és osztályozásából milyen módon vezethetők le magasabb, kevésbé valós fogalmak. Egy absztrakció kialakítása gyakran annak a következménye, hogy egy fogalom vagy jelenség információtartalmát csökkentjük: csak azt tartjuk meg, ami az adott feladathoz szükséges.
Tömör definíció
Röviden: az absztrakció a részletek elrejtése és a lényeg kiemelése. Célja a komplexitás csökkentése úgy, hogy a legfontosabb viselkedés- vagy szerkezeti elemek továbbra is rendelkezésre álljanak.
Miért hasznos?
- Megkönnyíti a problémák megértését és kezelését.
- Elősegíti az újrafelhasználhatóságot: egy általános leírást több konkrét esetre is alkalmazhatunk.
- Csökkenti a kód vagy a tudás redundanciáját és javítja a karbantarthatóságot.
- Tisztább architektúrát és jobb szétválasztást tesz lehetővé (például felhasználói felület — üzleti logika — adatbázis).
Típusok és példák
- Matematikai és elméleti absztrakció: fogalmak, mint például számok, függvények vagy halmazok — ezek elvonatkoztatják a konkrét mennyiségektől a szerkezetet és törvényszerűségeket.
- Programozási absztrakció:
- Adatabsztrakció: például egy labda helyett egy általános Labda osztályt használunk, amely csak a fontos tulajdonságokat (sugár, anyag, viselkedés) tartalmazza.
- Eljárás- vagy funkcióabsztrakció: egy rendező függvény (sort) használata anélkül, hogy mindig az algoritmus részleteivel foglalkoznánk.
- Interfészek és API-k: elrejtik a belső megvalósítást, és csak a használatra szükséges műveleteket teszik elérhetővé.
- Adatbázis-vélemény (views): csak a releváns mezők és rekordok jelennek meg a felhasználó számára.
- Fogalmi absztrakció: például amikor egy bőrből készült focilabda absztrahálása a labda általánosabb fogalmára csak a labda általános tulajdonságaira és viselkedésére vonatkozó információkat tartja meg, kihagyva az adott labda jellemzőit. Hasonlítsa össze a szóval: általánosítás.
- Művészeti absztrakció: az objektumok, formák és színek elvonatkoztatása a konkrét ábrázolástól — pl. absztrakt festmények, melyek nem törekszenek a valóság hű leképezésére.
- Filozófiai és lingvisztikai absztrakció: általános fogalmak létrehozása és nyelvi kategóriák alkalmazása a világ leegyszerűsítésére.
Gyakorlati példák
- Telefonos névjegyzék: nem tárolunk minden részletet a kapcsolatról (például munkáltató belső jegyzeteit), csak a név és telefonszám mezőket, ha csak hívni akarjuk őket.
- Autó vezérlése: a vezető számára elég, ha a kormány és pedálok működnek — nem kell ismernie a motor belső égésének minden részletét.
- Szoftvertervezés: egy modul egy egyszerű interfészt kínál, a belső implementációt a felhasználó nem látja és nem is érdekli.
- Általánosítás: a „madár” fogalma elvonatkoztatja a „galamb”, „harkály” vagy „sirály” konkrét tulajdonságait, kiemelve a közös jellemzőket (szárnyak, tollazat, repülés lehetősége — ahol releváns).
Előnyök és hátrányok
- Előnyök: egyszerűbb gondolkodás, moduláris tervezés, újrafelhasználhatóság, könnyebb karbantartás.
- Hátrányok: túlzott absztrakció vezethet információvesztéshez, téves általánosításokhoz vagy olyan megoldásokhoz, amelyek nem felelnek meg minden konkrét esetre. Fontos megtalálni az egyensúlyt a részletesség és az egyszerűség között.
Az "elvont" melléknév ellentéte általában a "konkrét" szó: az absztrakció mindig egy olyan skálán helyezkedik el, ahol a túlságosan absztrakt modell kevés információt ad, a túl konkrét modell pedig nem skálázható vagy nehezen újrafelhasználható.
Összefoglalva: az absztrakció eszköz a komplexitás csökkentésére és az újrafelhasználhatóság növelésére. Helyes alkalmazása hatékonyabb tervezést, könnyebb karbantartást és tisztább fogalmi struktúrákat eredményez.

