Zusammensetzung und Aggregation
Klassen und Objekte können miteinander in Beziehung gesetzt werden. Vererbung beschreibt eine „IS A“-Beziehung. Ein Löwe ist ein Tier. Diese Beziehung lässt sich leicht durch Vererbung ausdrücken, wobei
Animal
sich die übergeordnete Klasse und
Lion
die untergeordnete Klasse befinden würden. Aber nicht jede Beziehung auf der Welt wird auf diese Weise richtig beschrieben. Beispielsweise hat eine Tastatur durchaus etwas mit einem Computer zu tun, aber
sie ist kein Computer . Hände haben eine gewisse Beziehung zu einer Person, aber sie sind keine Person. Diese Fälle stellen eine andere Art von Beziehung dar – nicht „IST A“, sondern „HAT A“. Hände sind keine Person, aber eine Person HAT Hände. Eine Tastatur ist kein Computer, aber ein Computer HAT EINE Tastatur. "HAT EIN"
. Der Unterschied zwischen diesen Konzepten liegt in der „Strenge“ der Beziehungen. Nehmen wir ein einfaches Beispiel: Wir haben eine
Car
. Jedes Auto hat einen Motor. Darüber hinaus kann jedes Auto Passagiere befördern. Was ist der grundlegende Unterschied zwischen den Feldern
Engine engine
und
Passenger[] passengers
? Wenn ein Passagier
A
in einem Auto sitzt, bedeutet das nicht, dass Passagiere
B
nicht
C
auch im Auto sein können. Ein Wagen bietet Platz für mehrere Passagiere. Darüber hinaus können alle Passagiere aussteigen, der Wagen funktioniert aber weiterhin reibungslos. Die Beziehung zwischen der
Car
Klasse und dem
Passenger[] passengers
Array ist weniger streng. Man nennt es
Aggregation . Hier ist ein guter Artikel zu diesem Thema:
Beziehungen zwischen Klassen (Objekten). Es ist ein weiteres gutes Beispiel für Aggregation. Nehmen wir an, wir haben eine
Student
Klasse, die einen Schüler repräsentiert, und eine
StudentGroup
, die eine Gruppe von Schülern repräsentiert. Ein Student kann Mitglied eines Physikclubs, eines Star Wars-Fanclubs oder eines Comedy-Clubs sein.
Komposition ist eine strengere Art von Beziehung. Bei der Verwendung von Komposition hat ein Objekt ein anderes Objekt, kann jedoch nicht zu einem anderen Objekt desselben Typs gehören. Das einfachste Beispiel ist ein Automotor. Wenn ein Auto einen Motor hat, kann dieser Motor nicht zu einem anderen Auto gehören. Wie Sie sehen, ist diese Beziehung viel strenger als die von
Car
und
Passengers
.
GO TO FULL VERSION