Galvenā atšķirība: Abstrakcija un iekapsulēšana ir datorzinātnes programmēšanas koncepcijas. Abstrakcija ir process, kurā tiek noņemti vai atdalīti datu papildu raksturlielumi; tā kā iekapsulēšana ir mehānisms, kurā dati ir slēpti un apvienoti metodēs.
Abstrakcija ir vispārējs process, kurā papildu dati tiek izņemti un noņemti, lai padarītu konkrētu informāciju. Datoros tā ir programmēšanas metode, kas palīdz pārveidot datus uz īsu formu. Dati un programma šajā metodē netiek mainīti, bet tie tiek glabāti tajā pašā sākotnējā formā; vienīgā atšķirība ir tā, ka tās tiek samazinātas līdz mazākai reprezentatīvai formai. Abstrakcija cenšas samazināt un faktorēt informāciju, lai programmētājs vienlaikus varētu koncentrēties uz dažiem jēdzieniem.
Sistēmai var būt daudz šādu abstrakciju slāņu, kam ir dažādas nozīmes un detaļas. Piemēram, zema līmeņa abstrakcijas slāņi atklāj informāciju par datora aparatūru, kurā darbojas programma, bet augsta līmeņa slāņi attiecas uz programmas biznesa loģiku. Šie dati pēc tam tiek pakļauti programmētājam izpildes brīdī. Abstrakcija ir jēdziens vai ideja, kas nav saistīta ar kādu konkrētu gadījumu. Tajā ietverti tikai tie dati, kas attiecas uz tā objektiem un pašreizējām perspektīvām. Tam ir liela nozīme objektu ģimenē (objektu orientētas programmēšanas koncepcijās). un to izmanto dažādos veidos un īstenošanā.
Abstrakcijas jēdzienu var īstenot:
- Kontroles abstrakcija: tā ir darbību abstrakcija.
- Datu abstrakcija: Tas ļauj un apstrādā datu bitus un datu struktūras jēgpilnā veidā.
Iekapsulēšana datorprogrammās izceļ tās funkcijas divos dažādos apzīmējumos:
- Valodas mehānisms, kas ierobežo piekļuvi dažu objektu komponentiem.
- Valodas konstrukcija, kas atvieglo datu sasaisti ar metodēm (un citām funkcijām), kas darbojas uz šiem datiem.
Iekapsulēšana ir slēpšanās mehānismi, kam ir būtiska nozīme datu aizsardzībā no ārpuses. Tas faktiski nodrošina datu pamatprasību, novēršot reālu datu ļaunprātīgu izmantošanu. Iekapsulēšanas laikā dati tiek saglabāti un pieejami sākotnējā derīgajā un konsekventajā formātā.
Kopumā iekapsulēšana nozīmē objekta saglabāšanu no lietotāja un tā attēlošanu vispārīgā formā. Pamatā, iekapsulēšanas laikā papildu informācija ir paslēpta no ārējās vides. Objekti lauki ir tieši pārbaudīti un manipulēti šajā mehānismā. Informācija, kas slēpjas kopā ar mēbelēm, tiek apkopota versijā, kas tiek tālāk izmantota kā avota kods un ir savienota ar galvenes failu. Dažreiz publiskās klases mēģina piekļūt datiem, šajos gadījumos iekapsulēšana neļauj publiskajiem iebrucējiem spēlēt ar datiem. Viens no galvenajiem iekapsulēšanas ieguvumiem ir tas, ka tas palīdz samazināt programmas sarežģītību un palīdz lietotājiem saprast programmas precīzās koncepcijas, jo mehānismi ir tikai programmas īsa forma. Tas palielina robustumu, ļaujot attīstītājam vai programmētājam ierobežot savstarpējo atkarību starp programmatūras komponentiem. Iekapsulēšana ir piemērojama arī dažās valodās, piemēram, Smalltalk un Ruby, kurās piekļuve ir atļauta tikai ar objekta metodēm; kamēr lielākā daļa citu, piemēram, C ++, C # vai Java, piedāvā programmētājam zināmu kontroli. Šīs valodas ļauj izstrādātājiem piekļūt tam, kas ir paslēpts ar atslēgvārdiem, piemēram, publiskiem un privātiem.
Abstrakcija un iekapsulēšana ir arī galvenie OOP (Object-Oriented-Programming) pamati.
Abstrakcijas un iekapsulēšanas salīdzinājums:
Abstrakcija | Iekapsulēšana | |
Īss apraksts | Abstrakcija ir process, kas izvilk svarīgākos datus par objektu vai vienumu grupu un ignorē nebūtiskās detaļas. | Iekapsulēšana ir process, kas iesaiņo vai ieslēdz kapsulā esošos datus vai padara datus kodolīgus. |
Viņi ir | Abstrakcija attiecas uz ideju slēpt datus, kas nav nepieciešami prezentācijai. | Iekapsulēšana apvieno datus un funkcionalitāti. |
Pamatfunkcijas | Būtībā abstrakcija tiek izmantota, lai slēptu nevēlamos datus, un tā sniedz attiecīgos datus. | Būtībā iekapsulēšana nozīmē koda un datu slēpšanu vienā vienībā, lai aizsargātu datus no ārpasaules. |
Kad tie tiek izmantoti | Tā risina problēmu dizaina līmenī. | Tā īsteno problēmu īstenošanas līmenī. |
Noderīga lomām | Tas palīdz lietotājam koncentrēties uz to, ko objekts dara, nevis kā tā darbojas. | Tas palīdz programmētājam slēpt iekšējās detaļas vai mehāniku, kā objekts kaut ko dara. |
Informācija ir | Šeit informācija tiek atdalīta no reāliem datiem. | Šeit informācija tiek iesaiņota slēptajā formātā. |
Izkārtojumi | Tas attiecas uz ārējo izkārtojumu, ko izmanto dizaina ziņā. | Tas attiecas uz iekšējo izkārtojumu, kas tiek izmantots īstenošanā. |
Piemēram | Mobilā tālruņa ārējais izskats, kurā ir displeja ekrāns un tastatūras pogas, lai izsauktu numuru. | Mobilā tālruņa iekšējās ieviešanas detaļas, kā tastatūras poga un displeja ekrāns ir savienoti viens ar otru, izmantojot shēmas. |