Разлика между абстракция и капсулиране
Основни разлики между абстракция срещу капсулиране
- Абстракцията показва само полезни данни, като предоставя най-необходимите подробности, докато капсулирането обгръща кода и данните за необходимата информация.
- Абстракцията е фокусирана главно върху това какво трябва да се направи, докато капсулирането е фокусирано върху това как трябва да се направи.
- Абстракцията скрива сложността, като ви дава по-абстрактна картина, докато капсулирането скрива вътрешната работа, така че да можете да я промените по-късно.
- Абстракцията ви помага да разделите програмата на много независими части, докато капсулирането лесно се променя с нови изисквания.
- Сравнявайки Encapsulation срещу Abstraction, Abstraction решава проблеми на ниво проектиране, докато Encapsulation решава проблеми на ниво реализация.
- Абстракцията скрива неподходящите детайли, открити в кода, докато капсулирането помага на разработчиците лесно да организират целия код.
Определение за абстракция
Абстракцията е ООП концепция, която се фокусира само върху съответните данни на обект. Той скрива фоновите детайли и подчертава основните точки от данни за намаляване на сложността и повишаване на ефективността. Обикновено запазва само информация, която е най-подходяща за конкретния процес. абстракция методът се фокусира главно върху идеята, вместо върху действителното функциониране.
Определение за капсулиране
Капсулирането е метод за улесняване на обработката на сложна система от крайните потребители. Потребителят не трябва да се тревожи за вътрешни детайли и сложност на системата. Капсулирането е процес на опаковане на данните и кода, които оперират с данните, в едно цяло. Можете да го приемете като защитна обвивка, която спира произволен достъп на код, дефиниран извън тази обвивка.
Разлика между абстракция и капсулиране
Ето основната разлика между абстракция срещу капсулиране:
Параметър | абстракция | Капсулирането |
---|---|---|
Използвай за | Абстракцията решава проблема и проблемите, които възникват на етапа на проектиране. | Капсулирането решава проблема и въпроса, който възниква на етапа на внедряване. |
Фокус | Абстракцията ви позволява да се съсредоточите върху това, което обектът прави, вместо как го прави | Капсулирането ви позволява да скриете кода и данните в една единица, за да защитите данните от външния свят. |
изпълнение | Можете да използвате абстракция, като използвате интерфейс и абстрактен клас. | Можете да приложите капсулиране с помощта на модификатори за достъп (публични, защитени и частни). |
фокусира | Съсредоточете се главно върху това, което трябва да се направи. | Съсредоточете се основно върху това как трябва да се направи. |
Приложение | По време на ниво на проектиране. | По време на ниво на внедряване. |
Защо имате нужда от абстракция?
Ето основните причини, поради които абстракцията е необходима за обектно-ориентираното програмиране:
- Помага ви да опростите представянето на моделите на домейна.
- Абстракцията скрива неуместните детайли, намерени в кода.
- Абстракцията ви помага да разделите програмата на много независими концепции.
- Предлага най-голяма гъвкавост при използване на ADT (абстрактни тип данни) обекти в различни ситуации
Защо имате нужда от капсулиране?
Основните предимства на капсулирането са
- Подобрява поддръжката на приложението.
- Предлага гъвкавост на потребителя за много лесно използване на системата
- Помага на разработчиците да организират по-добре кода
- Улеснява цялостния процес на кодиране, тъй като се интересувате само от това какво прави друг клас, а не как го прави
- Този метод помага на разработчиците да бъдат по-„обективни“ и ориентирани към резултатите.
- Encapsulated Code е доста гъвкав и лесен за промяна с нови изисквания.
- Капсулирането прави тестването на единици лесно.
- Това ви позволява да намалите свързването на модулите и увеличава сплотеността вътре в модула, тъй като всички части от едно нещо са капсулирани на едно място.
- Капсулирането ви помага да промените част от кода, без да засяга други части от кода.
- Подобрява четимостта на кода на приложението
- Подобрена сигурност и улеснява поддръжката на приложението
- Интерфейсът за капсулиране позволява само добре дефинирано взаимодействие.
Пример за абстракция
Да предположим, че искате да създадете банково приложение и трябва да съберете цялата информация за вашия клиент. Има шансове да стигнете до следната информация за клиента.
Но не цялата информация по-горе е необходима за създаване на банково приложение.
Така че трябва да изберете само полезна информация за вашето банково приложение от този набор. Данни като име, адрес, данъчна информация и др. имат смисъл за банково приложение.
Тъй като сме извлекли/премахнали/избрали информацията за клиента от по-голям набор, процесът се нарича абстракция.
Въпреки това, същата информация, веднъж извлечена, може да се използва за широк спектър от приложения. Например, можете да използвате едни и същи данни за кандидатстване за болница, приложение за портал за работа, правителствена база данни и т.н. с малка или никаква промяна. Следователно те стават вашите основни данни. Това е предимство на абстракцията.
Пример за капсулиране
Да вземем пример за мобилно устройство. С помощта на мобилни устройства можете да изпълнявате различни функции като правене на снимка, изпращане на съобщение, запис на видео/аудио, достъп до мрежата и много други.
Характеристиките, споменати по-горе, са функционалности на повечето смартфони. Не е необходимо обаче да разбирате подробностите за вътрешното функциониране на тези функции, преди да използвате тази програма. Например, не е необходимо да знаете как вашият фотоапарат изчислява гама корекция или идентифицира човешко лице в изображение. Просто трябва да научите софтуерния интерфейс. Това е капсулиране.