Inkapsuliacija vs abstrakcija
Inkapsuliacija ir abstrakcija yra dvi skirtingos, tačiau susijusios sąvokos, randamos OOP (Object Oriented Programming) kalbose. Inkapsuliacija yra duomenų ir elgsenos derinimo kartu kaip vientiso objekto samprata. Kita vertus, abstrakcija yra subjekto elgsenos pateikimo procesas, palyginti su tuo, kaip jis įgyvendinamas.
Kas yra kapsulė?
Inkapsuliacija - tai duomenų kaupimas ir operacija, kuri juos vykdo į vieną objektą. Tai iš esmės reiškia, kad norint gauti prieigą prie duomenų, turėtų būti naudojami tam tikri iš anksto nustatyti metodai. Kitaip tariant, kapsuliuoti duomenys nėra tiesiogiai prieinami. Tai užtikrina, kad duomenų vientisumas bus išsaugotas, nes vartotojas negali tiesiogiai prieiti prie duomenų ir jų modifikuoti, kaip nori. Duomenų reikšmes vartotojai gaus arba nustatys tik naudodamiesi metodais, kurie yra viešai prieinami vartotojams. Šie metodai paprastai suteikia duomenų patvirtinimą, kad į laukus leidžiama įterpti tik tinkamo formato duomenis. Todėl kapsuliavimo nauda yra tris kartus didesnė. Vykdydamas kapsulę, programuotojas klasės laukus gali padaryti tik skaitomais arba rašomais. Antra, klasė gali visiškai kontroliuoti, kas saugoma jos laukuose. Galiausiai klasės vartotojams nereikia jaudintis, kaip saugomi jos duomenys. „Java“ programoje programuotojas gali paskelbti visus egzempliorių kintamuosius privačiais ir pateikti gavimo ir nustatymo metodus (kurie yra vieši) priėjimui prie privačių laukų ir jų modifikavimui..
Kas yra abstrakcija?
Abstrakcija yra pristatymo informacijos atskyrimo nuo išsamios įdiegimo procesas. Tai daroma taip, kad kūrėjas būtų atleistas nuo sudėtingesnių diegimo detalių. Vietoj to, programuotojas gali sutelkti dėmesį į subjekto pristatymą ar elgesio detales. Kalbant paprastai, abstrakcija orientuojasi į tai, kaip tam tikras subjektas gali būti panaudotas, o ne kaip jis įgyvendinamas. Abstrakcija iš esmės paslepia diegimo detales, kad net jei laikui bėgant diegimo metodika pasikeistų, programuotojui nereikėtų jaudintis, kaip tai paveiks jo programą. Sistemą galima apibendrinti keliais sluoksniais arba lygiais. Pvz., Žemo lygio abstrakcijos sluoksniai atskleis techninės informacijos detales, tuo tarpu aukšto lygio abstrakcija atskleis tik subjekto verslo logiką. Sąvoka „abstrakcija“ gali būti naudojama tiek subjektui, tiek procesui apibūdinti, ir tai sukelia tam tikrą painiavą. Kaip procesas, abstrakcija reiškia esminių detalių išgavimą, ignoruojant neesmines daikto ar daiktų grupės detales, o abstrakcija kaip subjektas reiškia modelį arba subjekto vaizdą, kuriame yra tik pagrindinės detalės. „Java“ programoje programuotojas gali naudoti raktinį žodį abstraktus, kad deklaruotų klasę kaip abstrakčią esmę, kuri atspindi esminius realaus pasaulio subjekto apibūdinamuosius požymius..
Kuo skiriasi kapsuliacija ir abstrakcija??
Nors kapsuliavimas ir abstrakcija yra labai susijusios sąvokos, randamos objektinio programavimo kalbose, jos turi esminių skirtumų. Abstrakcija yra technika, padedanti mums nustatyti, kas turėtų būti matoma, o kas turėtų būti paslėpta. Kapsuliavimas yra informacijos pakavimo būdai, kad ji padarytų matomą tai, kas turėtų būti matoma, ir slepia tai, kas turėtų būti paslėpta. Kitaip tariant, kapsulę galima identifikuoti kaip vieną žingsnį po abstrakcijos. Nors abstrakcija sumažina realaus pasaulio objektą iki esminių jį apibūdinančių savybių, kapsuliacija išplečia šią idėją modeliuodama ir susiejant šį subjekto funkcionalumą..