Hermetyzacja a abstrakcja
Hermetyzacja i abstrakcja to dwa różne, ale powiązane ze sobą pojęcia występujące w językach OOP (Object Oriented Programming). Hermetyzacja to koncepcja łączenia danych i zachowań razem jako jedna całość. Z drugiej strony abstrakcja to proces prezentowania, jak jednostka zachowuje się / wygląda w przeciwieństwie do tego, jak jest implementowana.
Co to jest kapsułkowanie?
Hermetyzacja to proces opakowywania danych i operacji, które na nich działają, w jedną całość. Zasadniczo oznacza to, że aby uzyskać dostęp do danych, należy użyć pewnych predefiniowanych metod. Innymi słowy, hermetyzowane dane nie są bezpośrednio dostępne. Daje to pewność, że integralność danych jest zachowana, ponieważ użytkownik nie ma bezpośredniego dostępu do danych i ich modyfikowania zgodnie z życzeniem. Użytkownicy będą pobierać lub ustawiać 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 zalety kapsułkowania są trojakie. Dzięki enkapsulacji programista może uczynić 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ą martwić się o sposób przechowywania jej danych. W Javie programista może zadeklarować wszystkie zmienne instancji jako prywatne i zapewnić metody pobierania i ustawiania (które są publiczne) w celu uzyskania dostępu do pól prywatnych i ich modyfikacji.
Co to jest abstrakcja?
Abstrakcja to proces oddzielania szczegółów prezentacji od szczegółów implementacji. Ma to na celu uwolnienie programisty od bardziej złożonych szczegółów implementacji. Zamiast tego programista może skupić się na prezentacji lub szczegółach behawioralnych jednostki. Mówiąc prościej, abstrakcja koncentruje się na tym, jak dana jednostka może być używana, a nie na tym, jak jest wdrażana. Abstrakcja zasadniczo ukrywa szczegóły implementacji, więc nawet jeśli metodologia implementacji zmienia się w czasie, programista nie musiałby się martwić, jak wpłynie to na jego program. System można abstrakcyjnie podzielić na kilka warstw lub poziomów. Na przykład warstwy abstrakcji niskiego poziomu ujawnią szczegóły sprzętu, podczas gdy abstrakcja wysokiego poziomu ujawni jedynie logikę biznesową jednostki. Termin abstrakcja może być używany zarówno w odniesieniu do jednostki, jak i procesu, co prowadzi do pewnego zamieszania. Jako proces, abstrakcja oznacza wydobywanie istotnych szczegółów przy jednoczesnym ignorowaniu nieistotnych szczegółów przedmiotu lub grupy elementów, podczas gdy jako całość 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 abstrakcyjną jednostkę, która reprezentuje podstawowe cechy definiujące rzeczywistą jednostkę.programista może użyć słowa kluczowego abstract, aby zadeklarować klasę jako byt abstrakcyjny, który reprezentuje podstawową definicję charakteryzującą byt świata rzeczywistego.programista może użyć słowa kluczowego abstract, aby zadeklarować klasę jako abstrakcyjną jednostkę, która reprezentuje podstawową definicję charakteryzującą rzeczywistą jednostkę.
Jaka jest różnica między enkapsulacją a abstrakcją?
Mimo że enkapsulacja i abstrakcja są bardzo pokrewnymi pojęciami występującymi w językach programowania obiektowego, mają one kluczowe różnice. Abstrakcja to technika, która pomaga nam zidentyfikować, co powinno być widoczne, a co ukryte. Hermetyzacja to techniki pakowania informacji w taki sposób, że uwidacznia to, co powinno być widoczne, a ukrywa to, co powinno być ukryte. Innymi słowy, kapsułkowanie można określić jako krok poza abstrakcję. Podczas gdy abstrakcja redukuje obiekt świata rzeczywistego do jego podstawowych cech definiujących, hermetyzacja rozszerza tę ideę poprzez modelowanie i łączenie tej funkcjonalności tej jednostki.