Tak !!!! Jeśli powiem, że kapsułkowanie jest rodzajem zaawansowanej abstrakcji konkretnego zakresu ,
Ilu z was przeczytało / zagłosowało na moją odpowiedź. Sprawdźmy, dlaczego mówię w ten sposób.
Muszę wyjaśnić dwie rzeczy przed złożeniem wniosku.
Jeden to ukrywanie danych, a drugi to abstrakcja
Ukrywanie danych
W większości przypadków nie dajemy bezpośredniego dostępu do naszych danych wewnętrznych. Nasze dane wewnętrzne nie powinny wychodzić bezpośrednio, ponieważ osoba zewnętrzna nie ma bezpośredniego dostępu do naszych danych wewnętrznych. Chodzi o bezpieczeństwo, ponieważ musimy chronić wewnętrzne stany konkretnego obiektu.
Abstrakcja
Dla uproszczenia ukrywanie wewnętrznych implementacji nazywa się abstrakcją. W abstrakcji skupiamy się tylko na rzeczach niezbędnych. Zasadniczo mówimy w abstrakcji o „co robić”, a nie o „jak to zrobić”. Bezpieczeństwo można również osiągnąć poprzez abstrakcję, ponieważ nie zamierzamy podkreślać tego, „jak wdrażamy”. Łatwość konserwacji zostanie zwiększona, ponieważ możemy zmienić implementację, ale nie wpłynie to na naszego użytkownika końcowego.
Powiedziałem: „Hermetyzacja jest rodzajem zaawansowanej abstrakcji konkretnego zakresu”. Czemu? ponieważ możemy postrzegać hermetyzację jako ukrywanie danych + abstrakcję
hermetyzacja = ukrywanie danych + abstrakcja
W przypadku hermetyzacji musimy ukryć dane, aby osoba z zewnątrz nie mogła ich zobaczyć i musimy zapewnić metody, których można użyć do uzyskania dostępu do danych. Metody te mogą mieć walidacje lub inne cechy wewnątrz tych rzeczy, również ukryte dla osoby z zewnątrz. Więc tutaj ukrywamy implementację metod dostępu i nazywa się to abstrakcją.
Dlatego powiedziałem, jak powyżej, hermetyzacja jest rodzajem abstrakcji.
Więc gdzie jest różnica ?
Różnica polega na tym, że abstrakcja jest ogólna, jeśli ukrywamy coś przed użytkownikiem ze względu na prostotę, łatwość konserwacji i bezpieczeństwo oraz
hermetyzacja jest specyficzna dla bezpieczeństwa stanów wewnętrznych, gdzie ukrywamy stan wewnętrzny (ukrywanie danych) i udostępniamy metody dostępu do danych oraz implementację tych metod także ukrytych przed osobą zewnętrzną (abstrakcja).