Różnica między abstrakcją a enkapsulacją
Kluczowe różnice między abstrakcją a enkapsulacją
- Abstrakcja pokazuje tylko przydatne dane, dostarczając najbardziej niezbędnych szczegółów, podczas gdy enkapsulacja opakowuje kod i dane, aby uzyskać niezbędne informacje.
- Abstrakcja koncentruje się głównie na tym, co należy zrobić, podczas gdy enkapsulacja koncentruje się na tym, jak należy to zrobić.
- Abstrakcja ukrywa złożoność, dając Ci bardziej abstrakcyjny obraz, podczas gdy enkapsulacja ukrywa wewnętrzną pracę, dzięki czemu możesz ją później zmienić.
- Abstrakcja pomaga podzielić program na wiele niezależnych części, natomiast Enkapsulacja jest łatwa do zmiany w przypadku nowych wymagań.
- Porównując enkapsulację z abstrakcją, abstrakcja rozwiązuje problemy na poziomie projektu, podczas gdy enkapsulacja rozwiązuje problemy na poziomie implementacji.
- Abstrakcja ukrywa nieistotne szczegóły znajdujące się w kodzie, natomiast enkapsulacja pomaga programistom w łatwym organizowaniu całego kodu.

Definicja abstrakcji
Abstrakcja to koncepcja OOP, która koncentruje się tylko na istotnych danych obiektu. Ukrywa szczegóły tła i podkreśla istotne punkty danych w celu zmniejszenia złożoności i zwiększenia wydajności. Zazwyczaj zachowuje tylko informacje, które są najbardziej istotne dla danego procesu. Abstrakcja Metoda skupia się głównie na idei, a nie na rzeczywistym funkcjonowaniu.
Definicja enkapsulacji
Enkapsulacja to metoda ułatwiająca obsługę złożonego systemu przez użytkowników końcowych. Użytkownik nie musi martwić się o wewnętrzne szczegóły i złożoność systemu. Kapsułkowanie jest procesem pakowania danych i kodu, który działa na danych, w jeden byt. Można to uznać za ochronną otoczkę, która zatrzymuje losowy dostęp do kodu zdefiniowanego poza tą otoczką.
Różnica między abstrakcją a enkapsulacją
Oto główna różnica między abstrakcją a enkapsulacją:
Parametr | Abstrakcja | Kapsułkowanie |
---|---|---|
Używać do | Abstrakcja rozwiązuje problem i problemy, które pojawiają się na etapie projektowania. | Hermetyzacja rozwiązuje problem i problem, który pojawia się na etapie wdrożenia. |
Skupiać | Abstrakcja pozwala skupić się na tym, co obiekt robi, zamiast na tym, jak to robi | Enkapsulacja umożliwia ukrycie kodu i danych w jednej jednostce, aby zabezpieczyć dane przed światem zewnętrznym. |
Wdrożenie | Możesz użyć abstrakcji, używając interfejsu i klasy abstrakcyjnej. | Możesz zaimplementować enkapsulację za pomocą modyfikatorów dostępu (publiczny, chroniony i prywatny). |
Skupia się | Skup się głównie na tym, co należy zrobić. | Skup się przede wszystkim na tym, jak to powinno być zrobione. |
Zastosowanie | Na poziomie projektowania. | Na poziomie wdrożenia. |
Dlaczego potrzebujesz abstrakcji?
Oto główne powody, dla których abstrakcja jest potrzebna w programowaniu obiektowym:
- Pomaga uprościć reprezentację modeli dziedzin.
- Abstrakcja ukrywa nieistotne szczegóły znajdujące się w kodzie.
- Abstrakcja pomaga podzielić program na wiele niezależnych koncepcji.
- Oferuje największą elastyczność podczas używania obiektów ADT (Abstract Data Type) w różnych sytuacjach
Dlaczego potrzebujesz enkapsulacji?
Główne zalety enkapsulacji to
- Poprawia łatwość konserwacji aplikacji.
- Zapewnia użytkownikowi elastyczność w zakresie bardzo łatwego korzystania z systemu
- Pomaga programistom lepiej zorganizować kod
- Ułatwia cały proces kodowania, ponieważ interesuje Cię tylko to, co robi inna klasa, a nie jak to robi
- Ta metoda pomaga programistom być bardziej „obiektywnym” i zorientowanym na wyniki.
- Kod enkapsulowany jest dość elastyczny i łatwy do zmiany w przypadku nowych wymagań.
- Hermetyzacja ułatwia testowanie jednostkowe.
- Pozwala zmniejszyć łączenie modułów i zwiększa spójność wewnątrz modułu, ponieważ wszystkie elementy jednej rzeczy są zamknięte w jednym miejscu.
- Hermetyzacja pomaga zmienić część kodu bez wpływu na inne części kodu.
- Poprawia czytelność kodu Aplikacji
- Zwiększone bezpieczeństwo i ułatwia konserwację aplikacji
- Interfejs enkapsulacji pozwala jedynie na dobrze zdefiniowaną interakcję.
Przykład abstrakcji
Załóżmy, że chcesz utworzyć aplikację bankową i poproszono cię o zebranie wszystkich informacji o twoim kliencie. Istnieje prawdopodobieństwo, że otrzymasz następujące informacje o kliencie.
Jednak nie wszystkie powyższe informacje są wymagane do stworzenia aplikacji bankowej.
Musisz więc wybrać z tej puli tylko informacje przydatne dla Twojej aplikacji bankowej. Dane takie jak imię i nazwisko, adres, informacje podatkowe itp. mają sens w przypadku aplikacji bankowej.
Ponieważ pobraliśmy/usunęliśmy/wybraliśmy informacje o kliencie z większej puli, proces ten nazywa się Abstrakcją.
Jednakże te same informacje po wyodrębnieniu można wykorzystać w szerokim zakresie zastosowań. Na przykład możesz użyć tych samych danych w aplikacji szpitalnej, aplikacji na portalu pracy, rządowej bazie danych itp. z niewielkimi modyfikacjami lub bez nich. Dlatego stają się one Twoimi danymi głównymi. To jest zaleta abstrakcji.
Przykład enkapsulacji
Weźmy przykład urządzenia mobilnego. Za pomocą urządzeń mobilnych możesz wykonywać różne funkcje, takie jak robienie zdjęć, wysyłanie wiadomości, nagrywanie wideo/audio, uzyskiwanie dostępu do Internetu i wiele więcej.
Funkcje wymienione powyżej są funkcjonalnościami większości smartfonów. Jednak nie musisz rozumieć wewnętrznych szczegółów działania tych funkcji przed użyciem tego programu. Na przykład nie musisz wiedzieć, jak Twój aparat oblicza korekcję gamma lub identyfikuje ludzką twarz na zdjęciu. Musisz po prostu nauczyć się interfejsu oprogramowania. To jest enkapsulacja.