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 jēdziens, apvienojot datus un uzvedību kā vienu vienību. No otras puses, abstrakcija ir process, kurā tiek parādīts, kā entītija uzvedas / pretstatā tā īstenošanai.
Kas ir iekapsulēšana?
Iekapsulēšana ir datu iesaiņošanas un darbības process, kas tos darbina vienā entītijā. Tas būtībā nozīmē, ka, lai piekļūtu datiem, jāizmanto noteiktas iepriekš definētas 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ņš / viņa 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 datus atbilstošā formātā. Tāpēc iekapsulēšanas priekšrocības ir trīs reizes. Izmantojot iekapsulēšanu, programmētājs klases laukus var padarīt tikai lasāmus vai tikai rakstītus. Otrkārt,klase var pilnībā kontrolēt 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ētājs var paziņot, ka visi instances mainīgie ir privāti, kā arī nodrošināt get and set metodes (kas ir publiskas), lai piekļūtu privātiem laukiem un tos modificētu.
Kas ir abstrakcija?
Abstrakcija ir process, kurā prezentācijas detaļas tiek atdalītas no ieviešanas detaļām. Tas tiek darīts, lai izstrādātājs tiktu atbrīvots no sarežģītākas 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 sakot, abstrakcija koncentrējas uz to, kā noteiktu vienību var izmantot, nevis uz to, kā tā tiek īstenota. Abstrakcija būtībā slēpj ieviešanas detaļas, tāpēc 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 abstrahēt vairākos slāņos vai līmeņos. Piemēram, zema līmeņa abstrakcijas slāņi atklās aparatūras detaļas, savukārt augsta līmeņa abstrakcija atklās tikai entītijas biznesa loģiku. Terminu abstrakcija var izmantot, lai apzīmētu gan vienību, gan procesu, un tas rada zināmu neskaidrību. Kā process abstrakcija nozīmē būtisku detaļu iegūšanu, ignorējot elementa vai priekšmetu grupas nebūtiskās detaļas, savukārt kā vienība abstrakcija nozīmē entītijas modeli vai skatu, kurā ir tikai būtiskākās detaļas. Programmā Java var izmantot atslēgvārdu abstrakts, lai deklarētu klasi kā abstraktu entītiju, kas atspoguļo reālās pasaules vienības būtiskos raksturojošos raksturojumus.programmētājs var izmantot atslēgvārdu abstrakts, lai deklarētu klasi kā abstraktu vienību, kas atspoguļo reālās pasaules vienības būtiskos raksturojošos raksturojumus.programmētājs var izmantot atslēgvārdu abstrakts, lai deklarētu klasi kā abstraktu vienību, kas atspoguļo reālās pasaules vienības būtiskos raksturojošos raksturojumus.
Kāda ir atšķirība starp iekapsulēšanu un abstrakciju?
Kaut arī iekapsulēšana un abstrakcija ir ļoti saistīti jēdzieni, kas atrodami uz objektu orientētās programmēšanas valodās, tiem ir būtiskas atšķirības. Abstrakcija ir paņēmiens, kas palīdz mums noteikt, kam jābūt redzamam un kas slēpjamam. Iekapsulēšana ir informācijas iesaiņošanas paņēmieni, kas padara redzamu to, kam jābūt redzamam, un slēpj to, kas jāslēpj. Citiem vārdiem sakot, iekapsulēšanu var identificēt kā vienu soli ārpus abstrakcijas. Kaut arī abstrakcija samazina reālās pasaules objekta būtiskos raksturojošos raksturlielumus, iekapsulēšana paplašina šo ideju, modelējot un saistot šo entītijas funkcionalitāti.