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

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

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

Wideo: Różnica między enkapsulacją a abstrakcją
Wideo: Facebook vs Linkedin 📈 7 głównych różnic między tymi portalami. 2024, Listopad
Anonim

Enkapsulacja a abstrakcja

Enkapsulacja i abstrakcja to dwie różne, ale powiązane ze sobą koncepcje występujące w językach OOP (programowanie zorientowane obiektowo). Hermetyzacja to koncepcja łączenia danych i zachowania w jedną całość. Z drugiej strony, abstrakcja to proces prezentowania sposobu, w jaki encja zachowuje się\wygląda w przeciwieństwie do tego, jak jest zaimplementowana.

Co to jest enkapsulacja?

Enkapsulacja to proces pakowania danych i operacji na nich wykonywanych w jedną całość. Zasadniczo oznacza to, że w celu uzyskania dostępu do danych należy zastosować pewne predefiniowane metody. Innymi słowy, enkapsulowane dane nie są bezpośrednio dostępne. Zapewnia to zachowanie integralności danych, ponieważ użytkownik nie jest w stanie uzyskać bezpośredniego dostępu do danych i modyfikować ich według własnego uznania. Użytkownicy otrzymają lub ustawią wartości danych tylko za pomocą metod, które są publicznie dostępne dla użytkowników. Metody te zwykle zapewniają walidację danych, dzięki czemu do pól można wstawiać tylko dane w odpowiednim formacie. Dlatego korzyści płynące z enkapsulacji są trojakie. Dzięki enkapsulacji programista może tworzyć pola klasy tylko do odczytu lub tylko do zapisu. Po drugie, klasa może mieć całkowitą kontrolę nad tym, co jest przechowywane w jej polach. Wreszcie, użytkownicy klasy nie muszą się martwić, jak przechowywane są jej dane. W Javie programista może zadeklarować wszystkie zmienne instancji jako prywatne i udostępnić metody pobierania i ustawiania (które są publiczne) w celu uzyskania dostępu i modyfikacji pól prywatnych.

Co to jest abstrakcja?

Abstrakcja to proces oddzielania szczegółów prezentacji od szczegółów implementacji. Odbywa się to tak, że programista jest zwolniony z bardziej złożonych szczegółów implementacji. Zamiast tego programista może skupić się na prezentacji lub szczegółach behawioralnych podmiotu. Mówiąc prościej, abstrakcja skupia się na tym, jak można użyć określonej encji, a nie na tym, jak jest zaimplementowana. Abstrakcja zasadniczo ukrywa szczegóły implementacji, dzięki czemu nawet jeśli metodologia implementacji zmieni się w czasie, programista nie będzie musiał się martwić, jak wpłynie to na jego program. System może być wyabstrahowany na kilka warstw lub poziomów. Na przykład warstwy abstrakcji niskiego poziomu ujawnią szczegóły dotyczące sprzętu, podczas gdy abstrakcja wysokiego poziomu ujawni tylko logikę biznesową encji. Termin abstrakcja może być używany zarówno w odniesieniu do jednostki, jak i procesu, co prowadzi do pewnych nieporozumień. Jako proces, abstrakcja oznacza wyodrębnianie istotnych szczegółów, ignorując nieistotne szczegóły przedmiotu lub grupy przedmiotów, podczas gdy jako byt abstrakcja oznacza model lub widok podmiotu zawierający tylko istotne szczegóły. W Javie programista może użyć słowa kluczowego abstract, aby zadeklarować klasę jako encję abstrakcyjną, która reprezentuje podstawowe cechy charakterystyczne encji świata rzeczywistego.

Jaka jest różnica między enkapsulacją a abstrakcją?

Mimo że enkapsulacja i abstrakcja są ściśle powiązanymi pojęciami występującymi w językach programowania obiektowego, mają one kluczowe różnice. Abstrakcja to technika, która pomaga nam określić, co powinno być widoczne, a co ukryte. Enkapsulacja to techniki pakowania informacji w taki sposób, aby uwidaczniały to, co powinno być widoczne, a ukrywały to, co powinno być ukryte. Innymi słowy, enkapsulację można określić jako jeden krok poza abstrakcję. Podczas gdy abstrakcja redukuje obiekt świata rzeczywistego do jego podstawowych cech definiujących, enkapsulacja rozszerza tę ideę poprzez modelowanie i łączenie tej funkcjonalności tej encji.

Zalecana: