Przeszedłem przez wiele teorii na temat tego, czym jest enkapsulacja i trzy techniki jej wdrażania, którymi są Stowarzyszenie, Agregacja i Kompozycja.
Kapsułkowanie
Hermetyzacja jest techniką nadawania polom klasy prywatności i zapewniania dostępu do pól metodami publicznymi. Jeśli pole zostanie uznane za prywatne, nie będzie dostępne dla osób spoza klasy, ukrywając w ten sposób pola w klasie. Z tego powodu enkapsulacja jest również nazywana ukrywaniem danych.
Hermetyzację można opisać jako barierę ochronną, która zapobiega losowemu dostępowi do kodu i danych przez inny kod zdefiniowany poza klasą. Dostęp do danych i kodu jest ściśle kontrolowany przez interfejs.
Główną zaletą enkapsulacji jest możliwość modyfikowania naszego zaimplementowanego kodu bez łamania kodu innych osób, które używają naszego kodu. Dzięki tej funkcji Encapsulation zapewnia łatwość konserwacji, elastyczność i rozszerzalność naszego kodu.
Stowarzyszenie
Skojarzenie to relacja, w której wszystkie obiekty mają swój własny cykl życia i nie ma właściciela. Weźmy przykład Nauczyciela i Ucznia. Wielu uczniów może łączyć się z jednym nauczycielem, a pojedynczy uczeń może łączyć się z wieloma nauczycielami, ale nie ma własności między przedmiotami i obaj mają swój własny cykl życia. Oba mogą tworzyć i usuwać niezależnie.
Zbiór
Agregacja to wyspecjalizowana forma asocjacji, w której wszystkie obiekty mają swój własny cykl życia, ale istnieje własność, a obiekt podrzędny nie może należeć do innego obiektu nadrzędnego. Weźmy przykład wydziału i nauczyciela. Jeden nauczyciel nie może należeć do wielu działów, ale jeśli usuniemy dział, obiekt nauczyciela nie zostanie zniszczony. Możemy myśleć o tym jako o relacji „ma”.
Kompozycja
Kompozycja jest ponownie wyspecjalizowaną formą agregacji i możemy to nazwać relacją „śmierci”. Jest to silny rodzaj agregacji. Obiekt potomny nie ma swojego cyklu życia i jeśli obiekt nadrzędny zostanie usunięty, wszystkie obiekty potomne również zostaną usunięte. Weźmy jeszcze raz przykład relacji między Domem a pokojami. Dom może zawierać wiele pokoi, ale nie ma niezależnego życia pokoju i żaden pokój nie może należeć do dwóch różnych domów. Jeśli usuniemy dom, pokój zostanie automatycznie usunięty.
Pytanie brzmi:
Teraz są to przykłady z prawdziwego świata. Szukam opisu sposobu użycia tych technik w rzeczywistym kodzie klasy. Mam na myśli, po co stosować trzy różne techniki enkapsulacji , jak można je wdrożyć i jak wybrać, która technika ma być stosowana w danym momencie.