Różnica między abstrakcją a enkapsulacją

Abstrakcja a enkapsulacja oba są podstawowymi pojęciami programowania obiektowego (OOP), które pozwalają na implementację rzeczywistych obiektów w Kodzie i programie. Różnią się bardzo, ponieważ oba idą w parze. Chociaż oba są technicznie nierozłączne, nie mają dosłownie nic wspólnego. Niemal cała enkapsulacja jest abstrakcją, ponieważ obie coś maskują, ale mają spory udział różnic.

Co to jest abstrakcja?

Abstrakcja jest podstawową koncepcją OOP, która koncentruje się tylko na odpowiednich danych obiektu i obejmuje wszystkie nieistotne szczegóły, które mogą lub nie mogą być wykorzystane do ogólnych lub specjalistycznych zachowań. Maskuje szczegóły tła i podkreśla istotne elementy w celu zmniejszenia złożoności i poprawy wydajności. Pomaga uprościć reprezentację modelu domeny. Abstrakcja dotyczy bardziej pomysłów niż wydarzeń. Obejmuje szczegóły na poziomie projektu, oferując funkcjonalność użytkownikom. Abstrakcja może być również nazwana obiektem wynikowym.

Weźmy przykład

Rozważmy więc motocykl. Mechanik próbuje naprawić motocykl lub powiedzieć określoną część motocykla. Jesteś użytkownikiem i nie chcesz znać szczegółów motocykla ani tego, która część rzeczywiście się zepsuła. Nie obchodzi cię to; po prostu chcesz, aby Twój motocykl był w oryginalnym stanie, nie martwiąc się o szczegóły. Powiedziałeś mechanikowi, czego chcesz, oddzielając część implementacyjną, co nazywa się abstrakcją. Najważniejszą rzeczą, którą zrobiłeś, było naprawienie motocykla zamiast skupiania się na szczegółach.

Co to jest enkapsulacja?

Inna koncepcja enkapsulacji OOP wiąże dane i funkcje w jeden komponent, ograniczając dostęp do niektórych komponentów. Hermetyzacja poprawi łatwość konserwacji aplikacji. Zapewni to użytkownikowi dużą elastyczność w korzystaniu z systemu. Ułatwia to cały proces kodowania, ponieważ interesuje Cię tylko to, czego nie robi inna klasa. Jest to jedna z głównych podstawowych koncepcji OOP, która łączy dane i dane w jedną jednostkę. Daje podstawową integralność danych, broniąc ich przed światem zewnętrznym. Łatwo ukrywa dodatkowe informacje ze świata zewnętrznego.

Weźmy przykład

Tylko musisz znać zachowanie urządzenia, nie martwiąc się o implementację szczegółów, takich jak czujniki klawiatury i to, czy jest bezprzewodowa, czy nie. Każdy szczegół opisuje mysz, ale jest to po prostu klawiatura niezależnie od szczegółów. Po prostu masz interfejs klawiatury, który w tej sytuacji jest wskaźnikiem myszy i nazywamy to Encapsulation

Porównanie między abstrakcją a enkapsulacją (infografiki)

Poniżej znajduje się 6 najważniejszych różnic między abstrakcji a enkapsulacją

Kluczowe różnice między abstrakcją a enkapsulacją

Omówmy niektóre z głównych różnic między abstrakcją a enkapsulacją:

Główną różnicą między abstrakcją a enkapsulacją jest to, że problem rozwiązuje abstrakcja na poziomie projektu, a poziom aplikacji - enkapsulacja. Abstrakcja obejmuje ukrywanie niechcianych informacji, zapewniając najważniejsze informacje, a enkapsulacja oznacza ukrywanie kodu i informacji w jednym urządzeniu.

Abstrakcja pozwala skupić się na tym, co robi przedmiot zamiast na tym, co robi, a enkapsulacja oznacza wewnętrzne szczegóły działania obiektu. Możesz zmodyfikować je później za pomocą lepszej techniki, jeśli zachowasz poufność informacji wewnętrznych. Abstrakcja koncentruje się na oglądaniu z zewnątrz, na przykład zmianie samochodu, podczas gdy Encapsulation koncentruje się na pracy wewnętrznej lub wewnętrznej.

Abstrakcja jest obsługiwana w Javie z interfejsem i klasą abstrakcyjną, a enkapsulacja jest obsługiwana przy użyciu np. Publicznych, prywatnych i bezpiecznych systemów modyfikacji dostępu. Jest to rozdział w Javie i OOP między enkapsulacją i abstrakcją. Przypomnij sobie, że abstrakcja rozwiązuje problem na poziomie projektu i hermetyzację na poziomie wykonania. Zarówno dla programisty OOP są bardzo istotne, ale czasem może być trudne do wyjaśnienia. Jak powiedziałem wcześniej, pisanie kodu i czytanie kodu innych jest jednym z najlepszych sposobów nauki i opanowywania programowania obiektowego.

Abstrakcja ukrywa implementację za pomocą interfejsu i klasy abstrakcyjnej, natomiast Encapsulation ukrywa dane za pomocą programów pobierających i ustawiających.

Tabela porównawcza abstrakcji a enkapsulacji

Poniżej znajduje się najwyższe porównanie między abstrakcją a enkapsulacją:

Abstrakcja

Kapsułkowanie

Abstrakcja działa na poziomie projektowaniaHermetyzacja działa na poziomie aplikacji
Abstrakcja jest wdrażana w celu ukrycia niepotrzebnych danych i wycofania odpowiednich danych.Hermetyzacja to mechanizm ukrywania kodu i danych razem przed światem zewnętrznym lub niewłaściwego użycia.
Podkreśla, jaka jest praca obiektu zamiast jego działaniaKoncentruje się na wewnętrznych szczegółach działania obiektu. Zmian można dokonać później w ustawieniach.
Abstrakcja koncentruje się na oglądaniu z zewnątrz, na przykład podczas zmiany samochodu.Enkapsulacja skupia się na wewnętrznej pracy lub wewnętrznej wizji, na przykład na produkcji samochodu.
Abstrakcja jest obsługiwana w Javie z interfejsem i klasą abstrakcyjnąKapsułkowanie jest obsługiwane przy użyciu np. Publicznych, prywatnych i bezpiecznych systemów modyfikacji dostępu.
Krótko mówiąc, abstrakcja ukrywa implementację za pomocą interfejsu i klasy abstrakcyjnej.W skrócie, enkapsulacja ukrywa dane za pomocą programów pobierających i ustawiających.

Wniosek

W tym artykule widzieliśmy, co to jest abstrakcja vs. enkapsulacja i różnica między nimi. Chociaż oba są pomysłami OOP dotyczącymi ukrywania danych, różnią się od siebie. Maskuje informacje w tle i wyróżnia krytyczne punkty informacyjne, aby zmniejszyć złożoność i poprawić efektywność. Dzięki nowym wymaganiom enkapsulowany kod jest bardzo elastyczny i łatwy do zmiany.

Polecane artykuły

Jest to wskazówka na temat największej różnicy między abstrakcją a enkapsulacją. W tym miejscu omawiamy również różnice między Abstrakcją a kapsułkowaniem z infografikami i tabelą porównawczą. Możesz także zapoznać się z następującymi artykułami, aby dowiedzieć się więcej -

  1. Co to jest C ++
  2. CSS vs JavaScript
  3. C vs Python
  4. Przewodnik po enkapsulacji w PHP