Primerjalna tabela
Podlaga za primerjavo | Skrivanje podatkov | Inkapsulacija |
---|---|---|
Osnovno | Podatki skrivajo zaskrbljenost glede varnosti podatkov in skrivnostne kompleksnosti. | Zaprtje se nanaša na ovijanje podatkov, da se skrije kompleksnost sistema. |
Osredotočite se | Skrivanje podatkov se osredotoča na omejevanje ali dovoljevanje uporabe podatkov znotraj kapsule. | Encapsulacija se osredotoča na ovijanje ali ovijanje kompleksnih podatkov. |
Access Specifier | Podatki, ki se skrivajo, so vedno zasebni in nedostopni. | Podatki v enkapsulaciji so lahko zasebni ali javni. |
Proces | Skrivanje podatkov je tako proces kot tehnika. | Inkapsulacija je podproces v skrivanju podatkov. |
Opredelitev skrivanja podatkov
Skrivanje podatkov je koncept v objektno usmerjenem programiranju, ki potrjuje varnost članov razreda pred nepooblaščenim dostopom. Skrivanje podatkov je tehnika za zaščito članov podatkov pred manipuliranjem ali vdiranjem iz katerega koli drugega vira. Podatki so najbolj občutljiva in volatilna vsebina programa, ki lahko, če je manipulirana, povzroči napačen izhod in škoduje celovitosti podatkov. Skrivanje podatkov je v Javi pod nadzorom modifikatorjev dostopa (zasebnih, javnih in zaščitenih). Podatki, ki so javni, so dostopni izven razreda, zato, če želite skriti svoje podatke ali omejiti dostop do njih od zunaj, jih razglasite za zasebne . Zasebni podatki so dostopni samo objektom tega razreda.
Razumimo podatke, ki se skrivajo s pomočjo primera. Recimo, da ste deklarirali razred CheckAccount in imate znotraj tega razreda stanje podatkovnega člana. Pri tem je stanje računa občutljive informacije. Zunanji aplikaciji lahko dovolite, da preveri stanje v računu, vendar zunanji aplikaciji ne boste dovolili spreminjanja atributa ravnotežja. Tako bi razglasitev atributa bilance za zasebno omejili dostop do ravnotežja iz zunanje aplikacije.
Skrivanje podatkov tudi zmanjšuje nekatere kompleksnosti sistema. Skrivanje podatkov je mogoče doseči z enkapsulacijo, saj je enkapsulacija podproces podatkov, ki se skriva.
Opredelitev enkapsulacije
Inkapsulacija je vezana na kodo in podatke skupaj v kapsuli, da se skrije kompleksnost razreda. Enkapsulacija je manj povezana s specifikatorji dostopa (zasebnimi, javnimi in zaščitenimi). V enkapsulaciji so lahko člani znotraj razreda zasebni, javni ali zaščiteni . Zasebni člani razreda so dostopni samo objektom tega razreda in javni člani so dostopni objektom razreda kot tudi zunaj razreda. Enkapsulacija pomaga končnemu uporabniku sistema, da se nauči, kaj storiti s sistemom, namesto, kako naj to stori.
Razumimo inkapsulacijo s pomočjo primera avtomobila. Če želi voznik avtomobila zamenjati prestavo avtomobila, potrebuje samo spremembo položaja jetrnih zobnikov v vozilu in s tem spremeni prestavo avtomobila. Vozniku ni treba razumeti kompleksnosti, kaj je mehanizem za menjavo prestav. Tako kapsuliranje zmanjša kompleksnost sistema. Enkapsulacija omogoča lažjo uporabo sistema s strani končnega uporabnika.
Ključne razlike med skrivanjem podatkov in enkapsulacijo
- Encapsulation obravnava skrivanje zapletenosti programa. Po drugi strani se skrivanje podatkov ukvarja z varnostjo podatkov v programu.
- Encapsulation se osredotoča na ovijanje (inkapsuliranje) kompleksnih podatkov, da se uporabniku prikaže enostavnejši pogled. Po drugi strani se skrivanje podatkov osredotoča na omejevanje uporabe podatkov, s ciljem zagotavljanja varnosti podatkov.
- V enkapsulaciji so lahko podatki javni ali zasebni, vendar morajo biti podatki v skrivanju samo zasebni .
- Skrivanje podatkov je tako proces kot tehnika, medtem ko je enkapsulacija podproces v skrivanju podatkov.
Sklep:
Zaključim s tem, da sta skrivanje in enkapsulacija podatkov pomembna pri implementaciji sistema. Oba gre z roko v roki, kadar se skrivanje podatkov osredotoča na varnost podatkov, inkapsulacija se osredotoča na zmanjšanje kompleksnosti sistema, da bi bila aplikacija bolj prijazna do uporabnika.