Ich habe viele Theorien über die Verkapselung und die drei Techniken zu ihrer Implementierung durchlaufen, nämlich Assoziation, Aggregation und Komposition.
Verkapselung
Bei der Kapselung werden die Felder in einer Klasse privat gemacht und der Zugriff auf die Felder über öffentliche Methoden ermöglicht. Wenn ein Feld als privat deklariert ist, kann niemand außerhalb der Klasse auf es zugreifen, wodurch die Felder innerhalb der Klasse ausgeblendet werden. Aus diesem Grund wird die Kapselung auch als Ausblenden von Daten bezeichnet.
Die Kapselung kann als eine Schutzbarriere beschrieben werden, die verhindert, dass auf den Code und die Daten von einem anderen Code, der außerhalb der Klasse definiert ist, zufällig zugegriffen wird. Der Zugriff auf Daten und Code wird über eine Schnittstelle streng kontrolliert.
Der Hauptvorteil der Kapselung besteht in der Möglichkeit, unseren implementierten Code zu ändern, ohne den Code anderer zu beschädigen, die unseren Code verwenden. Mit dieser Funktion verleiht Encapsulation unserem Code Wartbarkeit, Flexibilität und Erweiterbarkeit.
Verband
Assoziation ist eine Beziehung, in der alle Objekte einen eigenen Lebenszyklus haben und es keinen Eigentümer gibt. Nehmen wir ein Beispiel für Lehrer und Schüler. Mehrere Schüler können einem Lehrer und ein Schüler mehreren Lehrern zugeordnet werden. Es besteht jedoch kein Eigentumsrecht zwischen den Objekten und beide haben ihren eigenen Lebenszyklus. Beide können unabhängig voneinander erstellen und löschen.
Anhäufung
Die Aggregation ist eine spezielle Form der Zuordnung, bei der alle Objekte einen eigenen Lebenszyklus haben, der Besitz jedoch vorhanden ist und ein untergeordnetes Objekt nicht zu einem anderen übergeordneten Objekt gehören kann. Nehmen wir ein Beispiel einer Abteilung und eines Lehrers. Ein einzelner Lehrer kann nicht mehreren Abteilungen angehören, aber wenn wir die Abteilung löschen, wird das Lehrerobjekt nicht zerstört. Wir können es uns als eine Beziehung vorstellen, die eine Beziehung hat.
Zusammensetzung
Komposition ist wieder eine spezialisierte Form der Aggregation, und wir können dies als "Todesbeziehung" bezeichnen. Es ist eine starke Art der Aggregation. Das untergeordnete Objekt hat keinen Lebenszyklus. Wenn das übergeordnete Objekt gelöscht wird, werden auch alle untergeordneten Objekte gelöscht. Nehmen wir noch einmal ein Beispiel für die Beziehung zwischen Haus und Zimmern. Das Haus kann mehrere Räume enthalten, aber es gibt kein unabhängiges Leben eines Raums und jeder Raum kann nicht zu zwei verschiedenen Häusern gehören. Wenn wir das Haus löschen, wird der Raum automatisch gelöscht.
Die Frage ist:
Nun, das sind alles Beispiele aus der Praxis. Ich suche nach einer Beschreibung, wie diese Techniken im tatsächlichen Klassencode verwendet werden. Ich meine, worum geht es bei der Verwendung von drei verschiedenen Verkapselungstechniken , wie diese Techniken implementiert werden könnten und wie man wählt, welche Technik zur Zeit anwendbar ist.