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

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

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

Видео: Разлика между капсулиране и абстракция
Видео: Как ИЗМЕНИТЬ СВОЮ ЖИЗНЬ | Bucket List | Техника 100 желаний 2024, Юли
Anonim

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

Encapsulation и Abstraction са две различни, но свързани концепции, открити в OOP (обектно-ориентирано програмиране) езици. Капсулирането е концепцията за комбиниране на данни и поведение заедно като едно цяло. От друга страна, абстракцията е процес на представяне на това как даден обект се държи\изглежда за разлика от това как е внедрен.

Какво е капсулиране?

Енкапсулирането е процесът на опаковане на данни и операции, които работят върху тях, в един обект. Това по същество означава, че за достъп до данни трябва да се използват определени предварително дефинирани методи. С други думи, капсулираните данни не са директно достъпни. Това гарантира, че целостта на данните е запазена, тъй като потребителят не може директно да осъществява достъп и да променя данните, както желае. Потребителите ще получават или задават стойностите на данните само чрез методите, които са публично достъпни за потребителите. Тези методи обикновено осигуряват валидиране на данни, така че само данните в подходящия формат могат да бъдат вмъкнати в полетата. Следователно ползите от капсулирането са трикратни. Чрез Encapsulation програмистът може да направи полета от клас само за четене или само за запис. Второ, един клас може да има пълен контрол върху това, което се съхранява в неговите полета. И накрая, потребителите на даден клас не трябва да се тревожат как се съхраняват неговите данни. В Java програмистът може да декларира всички променливи на екземпляра като частни и да предостави get и set методи (които са публични) за достъп и промяна на частните полета.

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

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

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

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

Препоръчано: