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

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

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

Определение за абстракция

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

Определение за капсулиране

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

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

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

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

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

Защо имате нужда от абстракция?

Ето основните причини, поради които абстракцията е необходима за обектно-ориентираното програмиране:

  • Помага ви да опростите представянето на моделите на домейна.
  • Абстракцията скрива неуместните детайли, намерени в кода.
  • Абстракцията ви помага да разделите програмата на много независими концепции.
  • Предлага най-голяма гъвкавост при използване на ADT (абстрактни тип данни) обекти в различни ситуации

Защо имате нужда от капсулиране?

Основните предимства на капсулирането са

  • Подобрява поддръжката на приложението.
  • Предлага гъвкавост на потребителя за много лесно използване на системата
  • Помага на разработчиците да организират по-добре кода
  • Улеснява цялостния процес на кодиране, тъй като се интересувате само от това какво прави друг клас, а не как го прави
  • Този метод помага на разработчиците да бъдат по-„обективни“ и ориентирани към резултатите.
  • Encapsulated Code е доста гъвкав и лесен за промяна с нови изисквания.
  • Капсулирането прави тестването на единици лесно.
  • Това ви позволява да намалите свързването на модулите и увеличава сплотеността вътре в модула, тъй като всички части от едно нещо са капсулирани на едно място.
  • Капсулирането ви помага да промените част от кода, без да засяга други части от кода.
  • Подобрява четимостта на кода на приложението
  • Подобрена сигурност и улеснява поддръжката на приложението
  • Интерфейсът за капсулиране позволява само добре дефинирано взаимодействие.

Пример за абстракция

Да предположим, че искате да създадете банково приложение и трябва да съберете цялата информация за вашия клиент. Има шансове да стигнете до следната информация за клиента.

Пример за абстракция в ООП
Пример за абстракция в ООП

Но не цялата информация по-горе е необходима за създаване на банково приложение.

Така че трябва да изберете само полезна информация за вашето банково приложение от този набор. Данни като име, адрес, данъчна информация и др. имат смисъл за банково приложение.

Пример за абстракция в ООП
Пример за абстракция в ООП

Тъй като сме извлекли/премахнали/избрали информацията за клиента от по-голям набор, процесът се нарича абстракция.

Въпреки това, същата информация, веднъж извлечена, може да се използва за широк спектър от приложения. Например, можете да използвате едни и същи данни за кандидатстване за болница, приложение за портал за работа, правителствена база данни и т.н. с малка или никаква промяна. Следователно те стават вашите основни данни. Това е предимство на абстракцията.

Пример за капсулиране

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

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