В диаграмме классов UML связь является более сильной, чем зависимость,
Ассоциация и зависимость могут быть реализованы следующим образом:
Ассоциация -> Объект has-a B (как переменная-член)
public class A {
private B b;
A(B b){
this.b= b;
}
public void myMethod() {
b.callMethod();
}
}
Зависимость -> A ссылается на B (как параметр метода или тип возвращаемого значения)
public class A {
public void myMethod(B b) {
b.callMethod();
}
}
В приведенном выше примере вызов b.callMethod()
может быть достигнут с использованием либо ассоциации, либо зависимости
Я хочу знать, когда использовать один из подходов:
- один объект имеет другой объект в качестве поля (ассоциации)
- объект принимает другой объект как параметр метода (зависимость) ???
p.s - Любой пример будет более чем приветствоваться:)