Кључна разлика: апстракција и енкапсулација су концепти програмирања компјутерских наука. Апстракција је процес, у којем су додатне карактеристике података уклоњене или одвојене од података; док је енкапсулација механизам у којем су подаци скривени и групирани у методе.
Апстракција је генерализовани процес у којем се одузимају и уклањају додатни подаци како би се подаци учинили конкретним. У компјутерима, то је метода програмирања која помаже у претварању података у концизан облик. Подаци и програм се не мењају у овој методи, већ се чувају у истом почетном облику; једина разлика је у томе што су редуковани на мању видљиву форму. Апстракција покушава да смањи и факторише детаље, тако да програмер може да се фокусира на неколико појмова у исто време.
Систем може имати много таквих слојева апстракција, који имају различита значења и детаље. На пример, слојеви апстракције ниског нивоа излажу детаље рачунарског хардвера где се програм изводи, док се слојеви на високом нивоу баве пословном логиком програма. Ови детаљи су затим изложени програмеру у време извршења. Апстракција је концепт или идеја, која није повезана ни са једном конкретном инстанцом. Она обухвата само оне детаље података који се односе на његове објекте и тренутне перспективе. Она игра главну улогу у породици објеката (у концептима објектно-оријентисаног програмирања). и користи се на различите начине и имплементације.
Концепт апстракције се може имплементирати у:
- Контрола апстракције: То је апстракција акција.
- Апстракција података: Омогућава и обрађује битове података и структуре података на смислене начине.
Инкапсулација у компјутерском програмирању наглашава његове функције у двије различите ознаке, а то су:
- Језички механизам који ограничава приступ компонентама неког објекта.
- Конструкција језика која олакшава повезивање података са методама (и другим функцијама) које раде на тим подацима.
Инкапсулација је механизам скривања, који игра кључну улогу у заштити и осигуравању података од стране аутсајдера. Он заправо обезбеђује основни интегритет података спречавањем злоупотребе стварних података. У енкапсулацији, подаци се чувају и приступа им се у оригиналном валидном и конзистентном формату.
Уопштено, енкапсулација значи очување објекта од корисника и његово представљање у општем облику. У суштини, у енкапсулацији, додатни детаљи су скривени од спољашњег окружења. Поља објеката се директно контролишу и манипулишу овим механизмом. Информације које се скривају заједно са опремом се састављају у верзији, која се даље користи као изворни код и повезује се преко датотеке заглавља. Понекад јавне класе покушавају да приступе подацима, у овим случајевима енкапсулација не дозвољава јавним нападачима да се играју са подацима. Једна од главних предности енкапсулације је та да помаже у смањењу сложености програма и помаже корисницима да схвате тачне концепте програма, јер механизми представљају само кратак облик програма. Ово повећава робусност, дозвољавајући програмеру или програмеру да ограничи међусобне зависности између софтверских компоненти. Енкапсулација је такође примјењива на неким језицима, као што су Смаллталк и Руби, у којима је приступ дозвољен само преко објектних метода; док већина других, Ц ++, Ц # или Јава нуди степен контроле програмеру. Ови језици омогућавају програмерима да приступају преко онога што је скривено уз помоћ кључних речи као што су јавне и приватне.
Апстракција и енкапсулација су такође основни принципи у ООП-у (Објецт-Ориентед-Программинг).
Поређење између апстракције и енкапсулације:
Одвајање | Енцапсулатион | |
Кратак опис | Апстракција је процес који издваја битне детаље о ставци или групи ставки и занемарује небитне детаље. | Инкапсулација је процес који омотава или затвара податке у капсули или их чини језгровитим. |
Су | Апстракција се односи на идеју скривања података који нису потребни за презентацију. | Инкапсулација је групирање података и функционалности. |
Основне функције | У основи, апстракција се користи за сакривање нежељених података и даје релевантне податке. | У суштини, енкапсулација значи скривање кода и података у једну јединицу како би се заштитили подаци од вањског свијета. |
Када су оперисани | Он управља проблемом на нивоу дизајна. | Он управља проблемом на нивоу имплементације. |
Корист за улоге | Помаже кориснику да се фокусира на оно што објекат ради уместо на то како ради било коју функцију. | Помаже програмеру да сакрије унутрашње детаље или механику како објекат нешто ради. |
Информатион ис | Овде су информације одвојене од реалних података. | Овде су информације замотане у скривеном формату. |
Лаиоутс | Ради се о спољном изгледу, који се користи у смислу дизајна. | Ради се о унутрашњем распореду, који се користи у смислу имплементације. |
На пример | Спољашњи изглед мобилног телефона, који има екран и тастере на тастатури за бирање броја. | Унутрашњи детаљи имплементације мобилног телефона, како су тастери на тастатури и екрански дисплеји међусобно повезани помоћу кола. |