Dependencia - Un cambio en una clase afecta el cambio de clase que es dependiente. Ejemplo: el círculo depende de la forma (una interfaz). Si cambias la forma, también afecta a Circle. Entonces, Circle tiene una dependencia en Shape.
Asociación - significa que existe una cierta relación entre los 2 objetos
(uno a uno, uno-muchos, muchos-muchos)
asociación es de 2 tipos:
- Composición
Agregación
1) Composición - más fuerte Asociación o relación entre 2 objetos. Va a crear un objeto de una clase B dentro de otra clase Un
public class A {
B b;
public void setB(){
this.b= new B();
}
}
Si borramos la clase A, no existirá B (B objeto se crea dentro de una única)
Otro ejemplo -Body & Liver .Liver no puede existir fuera del cuerpo.
2) Agregación - más débil tipo de Asociación entre 2 objetos.
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 */
}
}
Incluso si se elimina la clase A, B existirá exterior (B se crea fuera y se pasa a la clase A)
Otro ejemplo de esto: Hombre & coche. El hombre tiene un Auto pero Hombre & Coche existen de forma independiente.
¿Por qué responder, cuando Martin lo hace mucho mejor para ti? +1 – Randolpho
Todavía no está del todo claro para mí, pero una cosa que sí entendí es que las dependencias son algo 'más débiles' que las asociaciones. Parece que las asociaciones son un subconjunto de dependencias, aunque, en mi opinión, al menos, la dependencia es una palabra * más fuerte * que la asociación. Esa pudo haber sido la fuente de la confusión. –
Ese artículo lo dice bien. De hecho, se alinea con mis pensamientos. Así que sacando algunos puntos aquí: ** (1) ** No quieres mostrar cada dependencia en un diagrama UML - hay demasiados. Debes ser muy selectivo y mostrar solo los que son importantes para lo que sea que estés comunicando. ** (2) ** Si hay una asociación entre dos clases, también hay una dependencia. La asociación lo implica, al igual que una generalización. ** Tan obvio para inferir la dependencia es la relación algo superconjunto de otras relaciones UML ** – Mahesha999