Разлика между абстракция срещу капсулация

Абстракция срещу капсулация и двете са основните обектно-ориентирани програми за програмиране (OOP), които позволяват реализиране на реални обекти в Code и program. Те са много различни, тъй като и двамата вървят ръка за ръка. Въпреки че и двете са технически неразделни, те нямат нищо общо буквално. Почти цялата капсулация е абстракция, защото и двете маскират нещо, но имат справедлив дял от различията.

Какво е абстракция?

Абстракцията е основна концепция за OOP, която се фокусира само върху съответните данни на даден обект и обхваща всички нерелевантни подробности, които могат или не могат да бъдат използвани за генерично или специализирано поведение. Той прикрива детайлите на фона и подчертава основните елементи за намаляване на сложността и подобряване на ефективността. Той помага да се опрости представянето на модела на домейна. Абстракцията е повече за идеи, отколкото за събития. Той покрива детайлите на ниво дизайн, като предлага функционалност на потребителите. Абстракция може също да се нарече полученият обект.

Нека вземем пример

Затова нека разгледаме мотоциклета Механик се опитва да поправи мотоциклета си или да каже определен раздел от вашия мотоциклет Вие сте потребителят и не искате да знаете спецификата на вашия мотоциклет или каква част всъщност е нарушена. Не те интересува; просто искате мотоциклета си в първоначалното му състояние, без да се притеснявате за подробностите. Вие казахте на механика какво искате, като отделите частта за изпълнение, която се нарича абстракция. Най-важното нещо, което направихте, беше да поправите мотоциклета си, вместо да се фокусирате върху подробностите.

Какво е капсулация?

Друга концепция за капсулиране на OOP обвързва данни и функционалности в един компонент, като същевременно се установява ограничаване на достъпа до определени компоненти. Капсулирането ще подобри поддръжността на вашето приложение. Това ще осигури на потребителя голяма гъвкавост при използване на системата. Улеснява целия процес на кодиране, тъй като се интересувате само от това, което различен клас не прави. Това е една от основните основни концепции на OOP, която обвива данни и данни в едно цяло. Тя дава основна цялост на данните, защитавайки ги от външния свят. Той крие допълнителна информация от външния свят в лесни условия.

Нека вземем пример

Само вие трябва да знаете поведението на устройството, без да се притеснявате за прилагането на подробности като какви сензори има клавиатурата и дали е безжична или не и всеки детайл описва мишката, но това е просто клавиатура, независимо от детайлите. Просто имате интерфейс на клавиатурата, който е показалеца на мишката в тази ситуация и това нарекохме капсулация

Сравнение от главата до главата между абстракция срещу капсулация (Инфографика)

По-долу е горната 6 разлика между абстракция срещу капсулация

Ключови разлики между абстракция срещу капсулация

Нека обсъдим някои от основните разлики между абстракция срещу капсулация:

Основната разлика между абстракция и капсулация е, че проблемът се решава чрез абстракция на ниво проектиране и ниво на приложение чрез капсулация. Абстракцията включва скриване на нежелана информация, като същевременно предоставя най-важната информация, докато капсулирането предполага скриване на код и информация в едно устройство.

Абстракцията ви позволява да се съсредоточите върху това, което прави елементът, вместо върху това, как се прави, докато капсулирането означава вътрешните подробности за това как работи обектът. Можете да го промените по-късно с по-добра техника, ако поддържате вътрешната информация поверителна. Абстракцията се фокусира върху външното гледане, например изместване на колата, докато капсулирането се фокусира върху вътрешното работно или вътрешното гледане.

Абстракция се поддържа в Java с интерфейса и абстрактния клас, а капсулирането се поддържа, като например, публични, частни и сигурни системи за модификация на достъп. Това е раздялата в Java и OOP сред капсулирането и абстракцията. Спомнете си, че абстракцията решава въпроса в нивото на проектиране, а капсулирането - в нивото на изпълнение. И двете за OOP програмист са много важни, но понякога може да е трудно да се обяснят. Както казах преди, писането на код и четенето на код на други хора е един от най-добрите начини за учене и овладяване на обектно-ориентирано програмиране.

Абстракцията крие реализацията с помощта на интерфейс и абстрактен клас, докато капсулацията крие данните с помощта на getters и setters.

Сравнителна таблица на абстракция срещу капсулация

По-долу е най-горното сравнение между абстракция срещу капсулация:

абстракция

Капсулирането

Абстракцията работи на ниво дизайнКапсулацията работи на ниво приложение
Абстракцията се осъществява с цел скриване на ненужни данни и изтегляне на съответните данни.Капсулирането е механизмът за скриване на кода и данните заедно от външния свят или неправилна употреба.
Той подчертава каква е работата на даден обект, а не как работи обектътФокусира се върху вътрешните подробности за това как работи обектът. Промените могат да бъдат направени по-късно в настройките.
Абстракцията се фокусира върху външното гледане, например изместване на колата.Капсулацията се фокусира върху вътрешното работно или вътрешното гледане, например, производството на автомобила.
Абстракцията се поддържа в Java с интерфейса и абстрактния класКапсулирането се поддържа като се използват например обществени, частни и сигурни системи за модификация на достъпа.
С две думи, абстракцията крие изпълнение с помощта на интерфейс и абстрактен клас.С две думи, капсулирането крие данните с помощта на гетъри и сетери.

заключение

В тази статия видяхме какво е абстракция срещу капсулация и разликата между тях. Въпреки че и двете са Data Hiding OOP идеи, те се различават една от друга. Той маскира основната информация и подчертава критичните информационни точки, за да намали сложността и да подобри ефективността. С новите изисквания капсулираният код е много гъвкав и лесен за смяна.

Препоръчителни статии

Това е ръководство за най-високата разлика между абстракция срещу капсулация. Тук също обсъждаме ключовите разлики Абстракция срещу Капсулация с инфографика и таблица за сравнение. Може да разгледате и следните статии, за да научите повече -

  1. Какво е C ++
  2. CSS срещу JavaScript
  3. C срещу Python
  4. Ръководство за капсулиране в PHP