Зависимость - Изменение в классе влияет на изменение в его зависимом классе. Пример - Круг зависит от формы (интерфейс). Если вы измените форму, это также повлияет на круг. Итак, у Circle есть зависимость от Shape.
Ассоциация - означает, что существует определенная связь между 2 объектами
(один-один, один-много, много-много)
Ассоциация бывает двух типов -
- Композиция
Aggregation
1) Композиция - сильнее Ассоциация или связь между 2 объектами. Вы создаете объект класса B внутри другого класса A
public class A {
B b;
public void setB(){
this.b= new B();
}
}
Если мы удалим класс A, B не будет существовать (объект B создается только внутри A).
Другой пример - тело и печень. Живой не может существовать вне тела.
2) Агрегирование - более слабый тип Ассоциация между 2 объектами.
public class A {
B b;
public void setB(B b_ref){
this.b= b_ref;
/* object B is passed as an argument of a method */
}
}
Даже если вы удалите класс A, B будет существовать снаружи (B создается снаружи и передается в класс A)
Еще один пример этого - Человек и Автомобиль. У человека есть Автомобиль, но Человек и Автомобиль существуют независимо.