Definitions taken from hereРазница между зависимостью и композицией?
Dependency
Изменение структуры или поведения класса влияет на другие связанные класс, то есть зависимость между этими двумя классами. Нужно не быть таким же наоборот. Когда один класс содержит другой класс, он это случается.
Состав
Композиция представляет собой частный случай агрегации. В более конкретном способе ограниченная агрегация называется композицией. Когда объект содержит другой объект, если содержащийся объект не может существовать без существования объекта-контейнера, то он называется .
Конкретные примеры в Java из here и here
Зависимость от
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;
}
}
Состав
final class Car {
private final Engine engine;
Car(EngineSpecs specs) {
engine = new Engine(specs);
}
void move() {
engine.work();
}
}
Это интересно. Есть вопрос где-то? – Bathsheba
Может быть, это в заголовке –
Качество этих определений довольно плохое. Пример: «... зависимость между этими двумя классами» «Это не обязательно должно быть наоборот». Но «между» - это неориентированная взаимосвязь - это то же самое наоборот * по определению термина ** между ***. –