Skirtumas tarp inkapsuliavimo ir abstrakcijos

Skirtumas tarp inkapsuliavimo ir abstrakcijos
Skirtumas tarp inkapsuliavimo ir abstrakcijos

Video: Skirtumas tarp inkapsuliavimo ir abstrakcijos

Video: Skirtumas tarp inkapsuliavimo ir abstrakcijos
Video: Kaip sukurti interneto svetainę nemokamai - VISI ŽINGSNIAI iki realaus paleidimo 2024, Lapkritis
Anonim

Inkapsuliavimas prieš abstrakciją

Inkapsuliavimas ir abstrakcija yra dvi skirtingos, bet susijusios sąvokos, aptinkamos OOP (Objektinio programavimo) kalbose. Inkapsuliavimas yra duomenų ir elgesio sujungimo kaip vieno subjekto koncepcija. Kita vertus, abstrakcija yra procesas, kuriuo parodoma, kaip subjektas elgiasi\atrodo, o ne kaip jis įgyvendinamas.

Kas yra inkapsuliavimas?

Inkapsuliavimas – tai duomenų ir su jais veikiančių operacijų suvyniojimas į vieną objektą procesas. Tai iš esmės reiškia, kad norint pasiekti duomenis, reikia naudoti tam tikrus iš anksto nustatytus metodus. Kitaip tariant, įkapsuliuoti duomenys nėra tiesiogiai pasiekiami. Taip užtikrinamas duomenų vientisumas, nes vartotojas negali tiesiogiai pasiekti ir keisti duomenų, kaip nori. Vartotojai gaus arba nustatys duomenų reikšmes tik tais metodais, kurie yra viešai prieinami vartotojams. Šie metodai paprastai užtikrina duomenų patvirtinimą, kad į laukus būtų leidžiama įterpti tik atitinkamo formato duomenis. Todėl Inkapsuliavimo nauda yra triguba. Naudodamas inkapsuliaciją, programuotojas gali padaryti klasės laukus tik skaitomus arba tik rašomus. Antra, klasė gali visiškai kontroliuoti, kas yra saugoma jos laukuose. Galiausiai, klasės vartotojams nereikia jaudintis, kaip saugomi jos duomenys. „Java“programuotojas gali paskelbti, kad visi egzempliorių kintamieji yra privatūs ir pateikti gavimo ir nustatymo metodus (kurie yra vieši), kad galėtų 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ų diegimo detalių. Vietoj to, programuotojas gali sutelkti dėmesį į subjekto pristatymą arba elgesio detales. Paprastai tariant, abstrakcija sutelkia dėmesį į tai, kaip tam tikras subjektas gali būti naudojamas, o ne kaip jis įgyvendinamas. Abstrakcija iš esmės slepia diegimo detales, kad net jei diegimo metodika laikui bėgant pasikeistų, programuotojui nereikėtų jaudintis, kaip tai paveiks jo programą. Sistema gali būti abstrahuota keliais sluoksniais arba lygiais. Pavyzdžiui, žemo lygio abstrakcijos sluoksniai atskleis techninės įrangos detales, o aukšto lygio abstrakcijos sluoksniai atskleis tik subjekto verslo logiką. Terminas abstrakcija gali būti vartojamas kalbant apie subjektą ir procesą, ir tai sukelia tam tikrą painiavą. Kaip procesas, abstrakcija reiškia esminių detalių išgavimą, ignoruojant neesmines elemento ar elementų grupės detales, o kaip esybę abstrakcija reiškia modelį arba objekto vaizdą, kuriame yra tik esminės detalės.„Java“programuotojas gali naudoti raktinį žodį abstract, kad paskelbtų klasę kaip abstrakčią esybę, kuri atspindi esmines realaus pasaulio esybės charakteristikas.

Kuo skiriasi inkapsuliacija ir abstrakcija?

Nors inkapsuliavimas ir abstrakcija yra labai susijusios sąvokos, aptinkamos objektinio programavimo kalbose, jos turi esminių skirtumų. Abstrakcija – tai technika, padedanti nustatyti, kas turėtų būti matoma, o kas – paslėpta. Inkapsuliavimas – tai informacijos pakavimo būdas taip, kad būtų matoma tai, kas turėtų būti matoma, ir paslėpta tai, kas turėtų būti paslėpta. Kitaip tariant, inkapsuliacija gali būti identifikuojama kaip vienas žingsnis už abstrakcijos. Nors abstrakcija sumažina realaus pasaulio objektą iki esminių jo charakteristikų, inkapsuliacija išplečia šią idėją modeliuodama ir susiedama šį objekto funkcionalumą.

Rekomenduojamas: