Iekapsulēšana vs abstrakcija
Iekapsulēšana un abstrakcija ir divi dažādi, bet saistīti jēdzieni, kas atrodami OOP (Object Oriented Programming) valodās. Iekapsulēšana ir datu un uzvedības apvienošanas kā vienotas būtības jēdziens. No otras puses, abstrakcija ir process, kurā tiek parādīts, kā entītija uzvedas \ izskatās, nevis kā tā tiek ieviesta..
Kas ir iekapsulēšana?
Iekapsulēšana ir datu iesaiņošanas process un darbība, kas ar tiem darbojas vienā entītijā. Tas būtībā nozīmē, ka, lai piekļūtu datiem, ir jāizmanto noteiktas iepriekš noteiktas metodes. Citiem vārdiem sakot, iekapsulētie dati nav tieši pieejami. Tas nodrošina datu integritātes saglabāšanu, jo lietotājs nevar tieši piekļūt datiem un tos modificēt, kā viņš vēlas. Lietotāji iegūs vai iestatīs datu vērtības tikai ar metodēm, kas lietotājiem ir publiski pieejamas. Šīs metodes parasti nodrošina datu validāciju, lai laukos būtu atļauts ievietot tikai atbilstošā formāta datus. Tāpēc iekapsulēšanas ieguvumi ir trīskārtīgi. Caur iekapsulēšanu programmētājs var padarīt klases laukus tikai lasāmus vai tikai rakstītus. Otrkārt, klasei ir pilnīga kontrole pār to, kas tiek glabāts tās laukos. Visbeidzot, klases lietotājiem nav jāuztraucas par to, kā tiek glabāti tās dati. Java programmā programmētājs var deklarēt visus instanču mainīgos kā privātus un nodrošināt piekļuves un iestatīšanas metodes (kas ir publiskas), lai piekļūtu privātiem laukiem un mainītu tos..
Kas ir abstrakcija?
Abstrakcija ir process, kurā prezentācijas detaļas tiek atdalītas no ieviešanas detaļām. Tas tiek darīts tā, lai izstrādātājs tiktu atbrīvots no sarežģītākām ieviešanas detaļām. Tā vietā programmētājs var koncentrēties uz entītijas prezentāciju vai uzvedības detaļām. Vienkārši izsakoties, abstrakcija ir vērsta uz to, kā var izmantot noteiktu entītiju, nevis uz to, kā tā tiek īstenota. Abstrakcija būtībā slēpj ieviešanas detaļas, lai pat tad, ja laika gaitā mainās ieviešanas metodika, programmētājam nebūtu jāuztraucas, kā tas ietekmēs viņa programmu. Sistēmu var iegūt vairākos slāņos vai līmeņos. Piemēram, zema līmeņa abstrakcijas slāņi atklās aparatūras informāciju, savukārt augsta līmeņa abstrakcija parādīs tikai entītijas biznesa loģiku. Terminu abstrakcija var izmantot, lai apzīmētu gan entītiju, gan procesu, un tas rada zināmu neskaidrību. Kā process abstrakcija nozīmē būtisku detaļu iegūšanu, vienlaikus ignorējot priekšmeta vai priekšmetu grupas nebūtiskās detaļas, savukārt abstrahēšana kā entītija nozīmē entītijas modeli vai skatu, kurā ir tikai būtiskas detaļas. Java programmā programmētājs var izmantot atslēgvārdu abstrakts, lai klasi deklarētu kā abstraktu entītiju, kas apzīmē būtiskas reālās pasaules entītijas raksturojošās īpašības..
Kāda ir atšķirība starp iekapsulēšanu un abstrakciju?
Kaut arī iekapsulēšana un abstrakcija ir ļoti savstarpēji saistīti jēdzieni, kas atrodami objektorientētās programmēšanas valodās, viņiem ir galvenās atšķirības. Abstrakcija ir paņēmiens, kas palīdz mums noteikt to, kam vajadzētu būt redzamam un kas jānoslēpj. Iekapsulēšana ir informācijas iesaiņošanas paņēmieni, lai tā padarītu redzamu to, kam vajadzētu būt redzamam, un paslēptu to, kas jāslēpj. Citiem vārdiem sakot, iekapsulēšanu var identificēt kā vienu soli ārpus abstrakcijas. Kaut arī abstrakcija reālās pasaules objektu samazina līdz tā galvenajām definējošajām īpašībām, iekapsulēšana paplašina šo ideju, modelējot un sasaistot šīs entītijas funkcionalitāti.