Unterschied zwischen Abhängigkeit und Zusammensetzung?
Abhängigkeit
Eine Änderung der Struktur oder des Verhaltens einer Klasse wirkt sich auf die andere verwandte Klasse aus. Dann besteht eine Abhängigkeit zwischen diesen beiden Klassen. Es muss nicht dasselbe sein. Wenn eine Klasseenthält die andere Klasse es passiert dies.
Komposition
Die Zusammensetzung ist ein Sonderfall der Aggregation. Genauer gesagt wird eine eingeschränkte Aggregation als Zusammensetzung bezeichnet. Wenn ein Objektenthält die andere Objekt: Wenn das enthaltene Objekt ohne das Vorhandensein eines Containerobjekts nicht existieren kann, wird es als Komposition bezeichnet.
Konkrete Beispiele in Java vonHier undHier
Abhängigkeit
class Employee {
private Address address;
// constructor
public Employee( Address newAddress ) {
this.address = newAddress;
}
public Address getAddress() {
return this.address;
}
public void setAddress( Address newAddress ) {
this.address = newAddress;
}
}
Komposition
final class Car {
private final Engine engine;
Car(EngineSpecs specs) {
engine = new Engine(specs);
}
void move() {
engine.work();
}
}