2.4. Egységbezárás, adatrejtés

iDevice ikon

Az egységbezárás (encapsulation) és az adatrejtés (data hiding), igen gyakran összemosódó objektum-orientált alapfogalmak. A bezárás, amire már korábban utaltunk is azt mondja ki, hogy az adatokat és a rajtuk végezhető műveletekért felelős eljárásokat egy egységként kell kezelni. Minden eljárást úgy kell meghatározni, hogy az csak az objektum saját adataival végezhessen műveleteket. Ehhez szorosan kapcsolódik az adatrejtés, ami pedig azt mondja, hogy az objektumoknak el kell rejteni a külvilág felől az adataikat. Az adatokhoz mindig csak valamilyen ellenőrzött metódus formájában lehessen hozzáférni.

Az objektum orientált tervezési ajánlás az, hogy az objektum adatait csak az objektum saját eljárásai (metódusai) kezeljék. Az objektumok adatai így az objektum „tudta" nélkül nem változtathatók meg. Ennek előnyei akkor mutatkoznak, ha egy objektum adatát csak úgy lehet megadni, hogy előtte az adat érvényességét és a többi adattal való összefüggését meg vizsgáltuk az objektum saját metódusában. Autós példánál maradva, ne lehessen az autó (objektum) színét beállítani lilára, mivel ilyen színt nem akarnak gyártani. Ha mégis a programban ez előfordulna, akkor az objektum képes a hibás adattárolási kérelmet feldolgozni és esetleg hibaüzenetet küldeni.

A két fogalom jelentőségét együttesen lehet meghatározni. Ha az objektum zárt, és a külvilág felé rejtetett, akkor más programrész nem tudja elrontani az objektum belsejét, ill. fordítva is igaz, az objektum belsejében lévő hiba nem befolyásolja a többi programrészt.