Skirtumas Tarp Kapsuliavimo Ir Abstrakcijos

Skirtumas Tarp Kapsuliavimo Ir Abstrakcijos
Skirtumas Tarp Kapsuliavimo Ir Abstrakcijos

Video: Skirtumas Tarp Kapsuliavimo Ir Abstrakcijos

Video: Skirtumas Tarp Kapsuliavimo Ir Abstrakcijos
Video: Устройства управления автоматическими выключателями 2024, Gegužė
Anonim

Kapsuliacija vs abstrakcija

Kapsuliavimas ir abstrakcija yra dvi skirtingos, tačiau susijusios sąvokos, randamos OOP (Object Oriented Programming) kalbose. Kapsuliavimas yra duomenų ir elgesio sujungimo kaip vieno subjekto samprata. Kita vertus, abstrakcija yra procesas, kurio metu pateikiama, kaip subjektas elgiasi, o ne kaip jis įgyvendinamas.

Kas yra inkapsuliacija?

Kapsuliavimas yra duomenų suvyniojimo ir operavimo procesas, kuris juos veikia viename objekte. Tai iš esmės reiškia, kad norint pasiekti duomenis reikėtų naudoti tam tikrus iš anksto nustatytus metodus. Kitaip tariant, kapsuliuoti duomenys nėra tiesiogiai prieinami. Tai užtikrina, kad duomenų vientisumas bus išsaugotas, nes vartotojas negali tiesiogiai pasiekti ir modifikuoti duomenų, kaip jis nori. Vartotojai duomenų vertes gaus arba nustatys tik taikydami metodus, kurie yra viešai prieinami vartotojams. Šie metodai paprastai užtikrina duomenų tikrinimą, todėl į laukus leidžiama įterpti tik atitinkamo formato duomenis. Todėl kapsuliavimo nauda yra triguba. Naudodamas „Encapsulation“programuotojas klasės laukus gali padaryti tik skaitomus arba rašomus. Antra,klasė gali visiškai kontroliuoti, kas saugoma jos laukuose. Galiausiai, klasės vartotojams nereikia jaudintis, kaip saugomi jos duomenys. Programoje „Java“programuotojas gali paskelbti, kad visi egzempliorių kintamieji yra privatūs, ir pateikti „get and set“metodus (kurie yra vieši), norint pasiekti ir modifikuoti privačius laukus.

Kas yra abstrakcija?

Abstrakcija yra pristatymo detalių atskyrimo nuo įgyvendinimo detalių procesas. Tai daroma taip, kad kūrėjas būtų atleistas nuo sudėtingesnių įgyvendinimo detalių. Vietoj to, programuotojas gali sutelkti dėmesį į objekto pateikimą ar elgsenos detales. Paprasčiau tariant, abstrakcija orientuota į tai, kaip tam tikras subjektas gali būti naudojamas, o ne kaip jis įgyvendinamas. Abstrakcija iš esmės slepia įgyvendinimo detales, todėl net jei laikui bėgant pasikeis įgyvendinimo metodika, programuotojui nereikės jaudintis, kaip tai paveiks jo programą. Sistema gali būti abstrahuota keliais sluoksniais ar lygiais. Pavyzdžiui, žemo lygio abstrakcijos sluoksniai atskleis aparatūros detales, o aukšto lygio abstrakcija atskleis tik subjekto verslo logiką. Terminas abstrakcija gali būti vartojamas kalbant tiek apie subjektą, tiek apie procesą ir tai sukelia tam tikrą painiavą. Kaip procesas, abstrakcija reiškia esminių detalių išskyrimą, ignoruojant neesmines daikto ar daiktų grupės detales, o kaip subjektas abstrakcija reiškia objekto modelį arba vaizdą, kuriame yra tik esminės detalės. Programoje „Java“programuotojas gali naudoti raktinį žodį abstraktus, kad deklaruotų klasę kaip abstraktų objektą, kuris atspindi esminius tikrojo pasaulio subjekto apibūdinimo požymius.programuotojas gali naudoti raktinį žodį abstraktus, kad deklaruotų klasę kaip abstrakčią esybę, kuri atspindi esminius tikrojo pasaulio subjekto apibūdinamuosius požymius.programuotojas gali naudoti raktinį žodį abstraktus, kad deklaruotų klasę kaip abstraktų objektą, kuris atspindi esminius tikrojo pasaulio subjekto apibūdinamuosius požymius.

Kuo skiriasi inkapsuliacija ir abstrakcija?

Nors kapsuliavimas ir abstrakcija yra labai susijusios sąvokos, randamos į objektą orientuoto programavimo kalbose, jos turi esminių skirtumų. Abstrakcija yra technika, padedanti nustatyti, kas turėtų būti matoma, o kas - paslėpta. Kapsuliavimas yra informacijos pakavimo būdai, kurie padaro matomą tai, kas turėtų būti matoma, ir paslepia tai, kas turėtų būti paslėpta. Kitaip tariant, kapsuliavimą galima identifikuoti kaip vieną žingsnį už abstrakcijos ribų. Nors abstrakcija sumažina realaus pasaulio objektą iki jo esminių apibrėžiančių charakteristikų, inkapsuliacija išplėtė šią idėją modeliuodama ir susiedama šį to subjekto funkcionalumą.

Rekomenduojama: