Dependency - Изменение в классе влияет на изменение это зависит от класса. Пример. Круг зависит от формы (интерфейса). Если вы меняете Shape, это также влияет на Circle. Итак, Circle имеет зависимость от Shape.
Ассоциация - означает, что существует определенная связь между 2 объектами
(один-один, один-многим, многие-многим)
Ассоциация 2 types-
Агрегация
1) Состав - strong Ассоциация или взаимосвязь между двумя объектами. Вы создаете объект в класса B внутри другого класса А
public class A {
B b;
public void setB(){
this.b= new B();
}
}
Если мы удалим класс A, B не будет существовать (объект B создается внутри только).
Другой пример -Буд & Печень .Листер не может существовать вне кузова.
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 создается снаружи и передается к классу А)
Другой пример this- Man & Car. У человека есть автомобиль, но человек & Автомобиль существует независимо.
Зачем отвечать, когда Мартин делает это намного лучше для вас ?! +1 – Randolpho
Это еще не ясно для меня, но одна вещь, которую я понял, - это то, что зависимости несколько слабее, чем ассоциации. Кажется, что ассоциации являются подмножеством зависимостей, хотя, по крайней мере, по моему мнению, зависимость является более сильным словом, чем ассоциация. Возможно, это и послужило источником путаницы. –
Эта статья хорошо говорит. На самом деле это совпадает с моими мыслями. Поэтому вытащить в нем несколько точек: ** (1) ** Вы не хотите показывать каждую зависимость от UML-диаграммы - их слишком много. Вы должны быть очень избирательными и показывать только те, которые важны для того, что вы общаетесь. ** (2) ** Если существует связь между двумя классами, существует также зависимость. Ассоциация подразумевает это, как и обобщение. ** Слишком очевидно, что для того, чтобы определить зависимость, это несколько надмножество отношений других отношений UML. ** – Mahesha999