Разлика између апстракције и енкапсулације

Апстракција и енкапсулација, оба су основни објектно-оријентисани програмирање (ООП) који омогућавају да се реални објекти имплементирају у код и програм. Они су веома различити јер обоје иду руку под руку. Иако су обоје технички нераздвојни, немају буквално ништа заједничко. Готово сва енкапсулација је апстракција, јер обоје нешто маскирају, али имају приличан део разлика.

Шта је апстракција?

Апстракција је основни концепт ООП који се фокусира само на релевантне податке о објекту и обухвата све небитне детаље који се могу или не могу користити за генеричко или специјализовано понашање. Маскира позадинске детаље и наглашава суштинске елементе за смањење сложености и побољшање ефикасности. Помаже у поједностављењу представљања модела домена. Апстракција је више идеја, него догађај. Прикрива детаље на нивоу дизајна нудећи корисницима функционалност. Апстракција се такође може назвати резултирајући објект.

Узмимо пример

Зато ћемо размотрити мотоцикл Механичар покушава поправити ваш мотоцикл или рећи одређени део вашег мотоцикла. Ви сте корисник и не желите да знате ваше особине мотоцикла или који део се заправо покварио. Тебе није брига; једноставно желите да свој мотоцикл буде у оригиналном стању без бриге о детаљима. Рекли сте механичару шта желите, одвајањем дела за имплементацију, то се назива апстракција. Најважнија ствар коју сте учинили је да поправите мотоцикл уместо да се фокусирате на појединости.

Шта је енкапсулација?

Још један концепт ООП енкапсулације повезује податке и функционалности у једну компоненту, а ограничавајући приступ одређеним компонентама. Инкапсулација ће побољшати одрживост ваше апликације. Ово ће кориснику пружити велику флексибилност у коришћењу система. То олакшава читав поступак кодирања, јер вас занима само оно што другачија класа не ради. Ово је један од главних основних концепата ООП-а, који податке и податке спаја у једну цјелину. Он даје основни интегритет подацима бранећи га од спољног света. Сакрива додатне информације из спољног света у једноставним условима.

Узмимо пример

Само морате знати понашање уређаја без бриге око примене детаља попут сензора које тастатура има и је ли бежична или не. Сваки детаљ описује миш, али то је једноставно тастатура без обзира на детаљ. Једноставно имате интерфејс тастатуре, што је показивач миша у овој ситуацији и то смо звали Енкапсулација

Упоређивање између апстракције и енкапсулације (инфографика)

Испод је топ 6 разлике између апстракције и енкапсулације

Кључне разлике између апстракције и енкапсулације

Разговарајмо о неким главним разликама између апстракције и енкапсулације:

Главна разлика између апстракције и енкапсулације је у томе што се проблем решава апстракцијом на нивоу дизајна и нивоа апликације енкапсулацијом. Апстракција укључује скривање нежељених информација, а истовремено даје најважније информације, док енкапсулација подразумева скривање кода и информација у једном уређају.

Апстракција вам омогућава да се фокусирате на оно што предмет ради уместо на то како ради, док капсулација значи унутрашње детаље како објект делује. Касније га можете изменити бољом техником ако унутрашњу информацију одржавате поверљивом. Апстракција се фокусира на спољашњи поглед, на пример на померање аутомобила док се енкапсулација фокусира на унутрашњи рад или унутрашњи приказ.

Апстракција је подржана у Јави са сучељем и апстрактном класом, а енкапсулација се подржава користећи нпр. Јавне, приватне и сигурне системе за модификацију приступа. Ово је раздвајање у Јави и ООП-у међу енкапсулацијом и апстракцијом. Подсетимо се да апстракција решава проблем на нивоу дизајна, а капсулацију на нивоу извршења. Оба за ООП програмера су веома битна, али то је понекад тешко објаснити. Као што сам већ рекао, писање кода и читање кодова других је један од најбољих начина за учење и савладавање објектно оријентисаног програмирања.

Апстракција скрива имплементацију уз помоћ интерфејса и апстрактне класе док енкапсулација скрива податке уз помоћ геттера и сеттера.

Упоредна табела апстракције и енкапсулације

Испод је врх поређења између апстракције и енкапсулације:

Одвајање

Инкапсулација

Апстракција делује на нивоу дизајнаИнкапсулација делује на нивоу апликације
Апстракција се проводи како би се сакрили непотребни подаци и повукли релевантни подаци.Инкапсулација је механизам за скривање кода и података заједно од спољног света или злоупотребе.
Истиче шта је рад објекта, а не како објект радиФокусира се на унутрашње детаље како објект функционише. Измене се могу накнадно извршити.
Апстракција се фокусира на спољашњи поглед, на пример на померање аутомобила.Инкапсулација се фокусира на унутрашњи радни или унутрашњи преглед, на пример, производњу аутомобила.
Апстракција је подржана у Јави са сучељем и апстрактном класомИнкапсулација се подржава користећи нпр. Јавне, приватне и сигурне системе за модификацију приступа.
Укратко, апстракција скрива имплементацију уз помоћ интерфејса и апстрактне класе.Укратко, енкапсулацијом се крију подаци уз помоћ геттера и сеттера.

Закључак

У овом чланку смо видели шта је апстракција вс енкапсулацији и разлика између њих. Иако су обе идеје о скривању података за ООП, оне се међусобно прилично разликују. Маскира позадинске информације и истиче критичне тачке информација ради смањења сложености и побољшања ефикасности. Са новим захтевима, капсулирани код је веома флексибилан и лако се мења.

Препоручени чланци

Ово је водич за главну разлику између апстракције и енкапсулације. Овде такође расправљамо о кључним разликама Абстракција вс Енкапсулација са инфографиком и упоредном табелом. Можда ћете такође погледати следеће чланке да бисте сазнали више -

  1. Шта је Ц ++
  2. ЦСС вс ЈаваСцрипт
  3. Ц вс Питхон
  4. Водич за енкапсулацију у ПХП-у

Категорија: