Abstrakcija un iekapsulēšana ir objektu orientētas programmēšanas (OOP) pamatjēdzieni, kas ļauj īstenot reālās pasaules objektus programmās un kodos. Lai gan abi iet roku rokā, viņi ļoti atšķiras viens no otra. Lai gan katra metode ir iekapsulēšana, tā ir arī abstrakcija. Vienkārši sakot, saliekot dažādas lietas, lai izveidotu entītiju, jūs faktiski izveidojat koncepcija - abstrakts. Kaut arī abi ir tehniski neatdalāmi, viņiem nav burtiski nekā kopīga. Gandrīz taisnība, ka katra iekapsulēšana ir abstrakcija, jo viņi abi kaut ko slēpj, tomēr viņiem ir taisnīga daļa atšķirību.
Abstrakcija ir OOP pamatjēdziens, kas koncentrējas tikai uz attiecīgajiem objekta datiem un slēpj visas neatbilstošās detaļas, kas var būt vai var nebūt vispārīgai vai specializētai uzvedībai. Tas slēpj pamatinformāciju un uzsver būtiskos aspektus, lai samazinātu sarežģītību un palielinātu efektivitāti. Būtībā abstrakcija ir programmēšanas rīks sarežģītības pārvaldīšanai. Abstrakcija koncentrējas uz idejām, nevis notikumiem. Tas paslēpj detaļas dizaina līmenī, nodrošinot lietotājiem funkcionalitāti. Iegūto objektu var saukt arī par abstrakciju. Programmētājs pārliecinās, ka nosauktajai entītijai būs iekļauti visi būtiskie aspekti un neviens no nebūtiskajiem aspektiem.
Ņemsim reālu abstrakcijas piemēru. Apsvērsim transportlīdzekļa gadījumu, kas šajā gadījumā ir jūsu transportlīdzeklis. Mehāniķis mēģina salabot jūsu automašīnu vai, pieņemsim, noteiktu jūsu automašīnas daļu. Šeit jūs esat lietotājs un nevēlaties iedziļināties sava auto īpatnībās vai tajā, kāda detaļa patiesībā salūza. Jūs faktiski nerūpējas par šīm lietām; jūs vienkārši vēlaties, lai jūsu transportlīdzeklis atgrieztos sākotnējā stāvoklī, neuztraucoties par detaļām. Tātad, jūs faktiski teicāt mehāniķim, ko vēlaties, nošķirot ieviešanas daļu. Tā ir abstrakcija. Jūs koncentrējāties uz vissvarīgāko lietu, kas ir automašīnas labošana, nevis koncentrējaties uz specifiku.
Iekapsulēšana ir vēl viena OOP koncepcija, kas datus un funkcijas sasaista vienā komponentā kamēr ierobežojot piekļuvi dažiem komponentiem. Tas ir viens no galvenajiem OOP pamatjēdzieniem, kas datus un informāciju aptver vienā vienībā. In tehnisks termins 'iekapsulēšana' nozīmē atribūtu paslēpšanu, lai pasargātu mainīgos no ārpuses piekļuves, lai izmaiņas lietojumprogrammas vienā daļā neietekmētu citas daļas. Gluži pretēji, padarot informāciju atvērtāku, jūs riskējat nepareizi izmantot datus. Tas nodrošina datu pamata integritāti, aizsargājot tos no ārpasaules. Vienkārši sakot, tas slēpj papildu detaļas no ārpasaules.
Ņemsim piemēru par Bluetooth peli. Jums jāzina tikai par ierīces uzvedību, neuztraucoties par ieviešanas detaļām, piemēram, kāda veida sensoriem ir pele, vai tā ir bezvadu, vai nav utt. Katra detaļa apraksta peli, taču neatkarīgi no tās ir tikai pele. Lai izmantotu peli, jums vienkārši nepieciešama saskarne, kas šajā gadījumā ir peles rādītājs. Tā ir iekapsulēšana.
Lai gan abi ir pamatjēdzieni, kas saistīti ar OOP, un tie ir tehniski neatdalāmi, tiem tomēr ir atšķirības daudzos aspektos.
Abstrakcija | Iekapsulēšana |
Tajā tiek aplūkotas tikai attiecīgās detaļas, slēpjot nesvarīgās detaļas, lai samazinātu sarežģītību, tādējādi palielinot efektivitāti. | Tas sasaista datus un informāciju vienā vienībā, lai pasargātu datus no ārējiem avotiem. |
Tas attiecas uz ideju slēpt datus, kas nav nepieciešami prezentācijas vajadzībām. | Tas slēpj datus un kodu, lai ierobežotu nevēlamu piekļuvi. |
Tas koncentrējas uz to, kas, nevis kā. | Tas slēpj iekšējo mehāniku, kā tas kaut ko dara. |
Tas slēpj nevajadzīgās detaļas dizaina līmenī. | Tas arī slēpj detaļas, bet ieviešanas līmenī. |
Informācija un dati tiek atdalīti no attiecīgajiem datiem. | Informācija ir paslēpta kapsulas iekšpusē, lai to varētu ērti piekļūt. |
Tā nodarbojas ar idejām, nevis notikumiem. | Ideja ir aizsargāt datus no ārpasaules. |
To īsteno, izmantojot abstraktu klasi un saskarni. | Tas tiek ieviests, izmantojot aizsargātas, privātas un paketes privātās piekļuves modifikatorus. |
Lai gan abi ir OOP jēdzieni, kas saistīti ar datu slēpšanu, tie viens no otra ir diezgan atšķirīgi. Abstrakcija attiecas arī uz slēpšanos, piemēram, iekapsulēšanu, taču, kamēr pirmais slēpj sarežģītību, otrais saglabā iekapsulētos datus, kontrolējot piekļuvi tiem. Abstrakcija attiecas uz jēdzienu pārstāvēt tikai nepieciešamās pazīmes, slēpjot neatbilstošās detaļas, lai samazinātu lietojumprogrammas sarežģītību, tādējādi palielinot efektivitāti. Savukārt iekapsulēšana attiecas uz jēdzienu slēpt visu programmas iekšējo mehāniku, lai pasargātu informāciju no nevēlamas piekļuves. Tas sasaista datus un informāciju vienā komponentā, ierobežojot piekļuvi citiem komponentiem.
Copyright © Visas Tiesības Aizsargātas | asayamind.com