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

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

Abstrakcja i enkapsulacja oba są podstawowymi koncepcjami programowania obiektów (OOP), które pozwalają wdrażać obiekty w świecie rzeczywistym w programach i kodach. Podczas gdy oba idą w parze, bardzo różnią się od siebie. Chociaż każda metoda jest enkapsulacją, jest to również abstrakcja. Mówiąc prosto, kiedy łączysz różne rzeczy, aby stworzyć jednostkę, faktycznie tworzysz koncepcję - streszczenie. Chociaż oba są technicznie nierozłączne, nie mają dosłownie nic wspólnego. Prawdą jest, że każda enkapsulacja jest abstrakcją, ponieważ oboje coś ukrywają, jednak mają swój uczciwy udział w różnicach.

Co to jest abstrakcja?

Abstrakcja to podstawowa koncepcja OOP, która koncentruje się tylko na odpowiednich danych obiektu i ukrywa wszystkie nieistotne szczegóły, które mogą, ale nie muszą być dla ogólnego lub wyspecjalizowanego zachowania. Ukrywa szczegóły tła i podkreśla podstawowe punkty w celu zmniejszenia złożoności i zwiększenia wydajności. Zasadniczo abstrakcja jest narzędziem programowania do zarządzania złożonością. Abstrakcja koncentruje się raczej na pomysłach niż na wydarzeniach. Ukrywa szczegóły na poziomie projektu, zapewniając użytkownikom funkcjonalność. Powstały obiekt można również nazwać abstrakcją. Programista upewnia się, że nazywany byt będzie miał wszystkie podstawowe aspekty i żadne z nieistotnych.

Weźmy prawdziwy przykład abstrakcji. Rozważmy przypadek pojazdu, który w tym przypadku jest Twój pojazd. Mechanik próbuje naprawić samochód lub powiedzmy, że określona część samochodu. Tutaj jesteś użytkownikiem i nie chcesz wdawać się w szczegóły swojego samochodu lub jaka część faktycznie pękła. Tak naprawdę nie dbasz o te rzeczy; Po prostu chcesz wrócić pojazd w jego oryginalnym stanie, nie martwiąc się o szczegóły. Tak naprawdę powiedziałeś mechanice, czego chcesz, segregując część implementacji. To jest abstrakcja. Skoncentrowałeś się na najważniejszej rzeczy, która jest naprawiona samochodu, zamiast skupiać się na szczegółach.

Co to jest enkapsulacja?

Enkapsulacja to kolejna koncepcja OOP, która wiąże dane i funkcje w pojedynczy komponent, jednocześnie ograniczając dostęp do niektórych komponentów. Jest to jedna z głównych fundamentalnych koncepcji OOP, która obejmuje dane i informacje w jednej jednostce. Pod względem technicznym kapsułkowanie oznacza ukrywanie atrybutów zmiennych tarczy przed dostępem zewnętrznym, aby zmiana jednej części aplikacji nie wpłynęła na inne części. Wręcz przeciwnie, zwiększając wersję informacji, ryzykujesz niewłaściwym użycie danych. Zapewnia podstawową integralność danych, chroniąc je przed światem zewnętrznym. Mówiąc prosto, ukrywa dodatkowe szczegóły ze świata zewnętrznego.

Weźmy przykład myszy Bluetooth. Musisz tylko wiedzieć o zachowaniu urządzenia, nie martwiąc się o szczegóły implementacji, takie jak to, jakie czujniki ma mysz, czy jest to bezprzewodowe, czy nie, itp. Każdy szczegół opisuje mysz, ale niezależnie od szczegółów, to tylko mysz. Potrzebujesz tylko interfejsu, aby użyć myszy, który w tym przypadku jest wskaźnikiem myszy. To jest enkapsulacja.

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

Chociaż oba są podstawowymi pojęciami związanymi z OOP i są technicznie nierozłączni, nadal mają swoje różnice w wielu aspektach.

  1. Różnice w „definicji” abstrakcji i enkapsulacji - Abstrakcja to podstawowa koncepcja OOP, która podkreśla wszystkie podstawowe aspekty obiektu, ukrywając nieistotne szczegóły w celu zwiększenia wydajności i wyeliminowania złożoności. Z drugiej strony enkapsulacja to mechanizm ukrywania danych, który obejmuje dane i informacje w kapsułce, aby ograniczyć dostęp do świata zewnętrznego.
  2. Różnice w „funkcjonalności” abstrakcji i enkapsulacji- Abstrakcja to mechanizm ukrywania danych, który podkreśla jedynie podstawowe cechy, aby uprościć złożone programy, podczas gdy enkapsulacja, z drugiej strony, jest metodą wiązania danych i kodów z jedną jednostką. Chodzi o to, aby chronić szczegóły implementacji przed dostępem zewnętrznym.
  3. Różnice w „wdrażaniu” abstrakcji i enkapsulacji - Abstrakcja jest zaimplementowana przy użyciu klasy abstrakcyjnej i interfejsu, podczas gdy enkapsulacja jest implementowana za pomocą modyfikatorów dostępu. Do kapsułkowania danych wykorzystywanych jest pięć rodzajów modyfikatorów: prywatne, publiczne, wewnętrzne, chronione i chronione wewnętrzne.
  4. Różnice w „koncepcji” abstrakcji i enkapsulacji- Ideą abstrakcji jest skupienie się na tym, co zamiast tego. Enkapsulacja ukrywa wewnętrzną mechanikę sposobu. Na przykład, gdy prowadzisz samochód, wiesz dokładnie, co robi pedał hamulca, ale możesz nie znać całego mechanizmu za nim, ponieważ dane są zamknięte.
  5. Różnice w „przykładach” abstrakcji i enkapsulacji - Weźmy przykład smartfona. Wiesz, co robi, ale możesz nie wiedzieć, jak robi to, co robi. Dbasz tylko o ekran wyświetlacza i przyciski klawiatury, zamiast martwić się o jego wewnętrzny obwód. Tutaj smartfon jest streszczeniem, w którym wewnętrzne szczegóły implementacji są zamknięte.

Abstrakcja vs. Zakapulowanie za pomocą tabeli porównawczej

Abstrakcja Kapsułkowanie
Zajmuje się tylko odpowiednimi szczegółami, ukrywając te nieistotne, aby zmniejszyć złożoność, zwiększając w ten sposób wydajność. Pokrywa dane i informacje ze sobą w pojedynczy jednostkę w celu ochrony danych przed źródłami zewnętrznymi.
Odnosi się do pomysłu ukrywania danych, które nie są wymagane do celów prezentacji. Ukrywa dane i kod w celu ograniczenia niechcianego dostępu.
Koncentruje się na tym, co zamiast tego. Ukrywa wewnętrzną mechanikę tego, jak coś robi.
Ukrywa niepotrzebne szczegóły na poziomie projektu. Ukrywa również szczegóły, ale na poziomie implementacji.
Informacje i dane są oddzielone od odpowiednich danych. Informacje są ukryte wewnątrz kapsułki w celu bliskiego dostępu.
Zajmuje się raczej pomysłami niż wydarzeniami. Chodzi o ochronę danych przed światem zewnętrznym.
Jest zaimplementowany przy użyciu klasy abstrakcyjnej i interfejsu. Jest wdrażany przy użyciu modyfikatorów dostępu chronionych, prywatnych i pakietów.

Streszczenie

Chociaż oba są koncepcjami OOP związanymi z ukrywaniem danych, są one zupełnie inne od siebie. Abstrakcja dotyczy również ukrywania się jak enkapsulacja, ale chociaż pierwsza ukrywa złożoność, druga przechowuje dane, które zawiera, kontrolując dostęp do nich. Abstrakcja odnosi się do koncepcji reprezentowania jedynie niezbędnych cech poprzez ukrywanie nieistotnych szczegółów w celu zmniejszenia złożoności zastosowania. Z drugiej strony enkapsulacja odnosi się do koncepcji ukrywania wszystkich wewnętrznych mechaników programu w celu ochrony informacji przed niechcianym dostępem. Pokrywa dane i informacje ze sobą w pojedynczy komponent, ograniczając dostęp do innych komponentów.