Kas yra duomenų slėpimas?

Duomenų slėpimas yra metodas, naudojamas objektiniame programavime, siekiant paslėpti informaciją kompiuterio kode. Kode esantys objektai nepateikia informacijos, kuri laikoma paslėpta. Programuotojams tai suteikia keletą pranašumų, nes objektai negali prisijungti prie nesusijusių duomenų, o įsilaužėliai rečiau gali pasiekti duomenis. Tuo pačiu metu paslėpus duomenis gali būti sunkiau programuotojui, kuriam gali tekti naudoti daugiau kodo, kad sukurtų efektus paslėptuose duomenyse, nei reikėtų, jei duomenys būtų vieši.

Objektinis programavimas yra programavimo tipas, kai kodo dalys suskaidomos į objektus. Kiekvienas iš šių objektų yra užprogramuotas kapsulėse, todėl kiekvienas objektas turi savo kodavimą, kuris taikomas tik tam objektui. Nenurodant duomenų kaip paslėptų, visi duomenys yra atviri objektams.

Duomenų slėpimas paima tam tikras kodo dalis ir paslepia tas dalis nuo objektų. Objektai negali tiesiogiai pasiekti jokių paslėptų duomenų. Jei objektas pasiekia paslėptus duomenis, jis grąžins klaidą. Taip yra todėl, kad objektas nemato duomenų, todėl visos funkcijos ar duomenys, pažymėti kaip paslėpti, objektui atrodys nematomi. Dažniausiai paslėpti duomenys yra vidiniai komponentai, kurių vartotojui nereikia ir kurie gali pasirodyti pavojingi, jei duomenys bus atskleisti vartotojui.

Programuotojų pranašumas yra tas, kad programuotojas negali netyčia susieti su neteisingais duomenimis. Duomenų slėpimas užtikrina, kad jei programuotojas padarys šią nuorodą, programa tiesiog pateiks klaidą, kad programuotojas galėtų greitai ištaisyti klaidą. Tai taip pat užtikrina, kad visi objektai būtų tikrai izoliuoti vienetai, o tai yra pagrindinė objektinio kodavimo koncepcija. Nepastovūs duomenys paprastai yra paslėpti, nes jei tokie duomenys būtų paviešinti, jie galėtų sugadinti objektą ir sunaikinti visą programą.

Kitas duomenų slėpimo pranašumas yra didesnis saugumas nuo įsilaužėlių. Jei visi vidiniai duomenys yra vieši, įsilaužėlis gali lengvai įsiskverbti į vidinius duomenis ir atlikti bet kokius pakeitimus, kad piktybiškai manipuliuotų programa. Paslėpus duomenis, nulaužti kodą yra daug sunkiau, nes duomenys objektams ir įsilaužėliui pasirodys nematomi.
Duomenų slėpimo trūkumas yra tas, kad kartais tai gali priversti programuotojus naudoti papildomą kodavimą. Jei programuotojas gali susieti su paslėptais duomenimis, jis gali pagreitinti objektų darbą arba sumažinti daug kodo. Tačiau dauguma programuotojų neviešina visos informacijos dėl visų su tokio tipo kodavimu susijusių problemų.