Dependencia : un cambio en una clase afecta el cambio en su clase dependiente. Ejemplo: el círculo depende de Shape (una interfaz). Si cambia de forma, también afectará al círculo. Entonces, Circle tiene una dependencia de Shape.
Asociación : significa que existe una cierta relación entre 2 objetos
(uno-uno, uno-muchos, muchos-muchos)
La asociación es de 2 tipos-
- Composición
Agregación
1) Composición - Asociación o relación más fuerte entre 2 objetos. Estás creando un objeto de una clase B dentro de otra clase A
public class A {
B b;
public void setB(){
this.b= new B();
}
}
Si eliminamos la clase A, B no existirá (el objeto B se crea solo dentro de A).
Otro ejemplo: Body & Liver. El hígado no puede existir fuera del cuerpo.
2) Agregación : tipo de asociación más débil 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 elimina la clase A, B existirá afuera (B se crea afuera y se pasa a la Clase A)
Otro ejemplo de esto: Man & Car. El hombre tiene un coche, pero el hombre y el coche existen de forma independiente.