Dipendenza : una modifica in una classe influisce sulla modifica nella sua classe dipendente. Esempio: Circle dipende da Shape (un'interfaccia). Se cambi forma, influisce anche sul cerchio. Quindi, Circle ha una dipendenza da Shape.
Associazione : significa che esiste una certa relazione tra 2 oggetti
(uno-uno, uno-molti, molti-molti)
L'associazione è di 2 tipi:
- Composizione
Aggregazione
1) Composizione : associazione o relazione più forte tra 2 oggetti. Stai creando un oggetto di una classe B all'interno di un'altra classe A.
public class A {
B b;
public void setB(){
this.b= new B();
}
}
Se cancelliamo la classe A, B non esisterà (l'oggetto B viene creato solo all'interno di A).
Un altro esempio: corpo e fegato. Il fegato non può esistere al di fuori del corpo.
2) Aggregazione : tipo più debole di associazione tra 2 oggetti.
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 */
}
}
Anche se elimini la classe A, B esisterà all'esterno (B viene creato all'esterno e passato alla classe A)
Un altro esempio di questo: Man & Car. L'uomo ha un'auto ma l'uomo e l'auto esistono indipendentemente.