Aggregazione è un termine che viene utilizzato per riferirsi relazione unidirezionale tra due oggetti. Ad esempio, la classe Student può avere riferimento alla classe Address ma viceversa non ha senso.
In Java, l’aggregazione rappresenta una relazione HAS-A, il che significa che quando una classe contiene riferimento di un’altra classe nota per avere aggregazione.
La relazione HAS-A si basa sull’utilizzo, piuttosto che sull’ereditarietà. In altre parole, la classe A ha una relazione con la classe B, se la classe A ha un riferimento a un’istanza della classe B.
Lo capiamo con un esempio e consideriamo due classi Student e Address. Ogni studente ha il proprio indirizzo che fa ha-una relazione, ma l’indirizzo ha studente non ha alcun senso. Possiamo capirlo più chiaramente usando il codice Java.
Qui nel codice di cui sopra, possiamo vedere classe studente ha-una relazione con classe indirizzo. Abbiamo anche disegnato un’immagine per dimostrare la relazione tra queste due classi..
La classe Student
ha una variabile di istanza di tipo Address
. Poiché abbiamo una variabile di tipo Address
nella classe Student
, può utilizzare il riferimento all’indirizzo che è ad
in questo caso, per richiamare i metodi della classe Address
.
Vantaggio dell’aggregazione
Il vantaggio principale dell’utilizzo dell’aggregazione è quello di mantenere la riutilizzabilità del codice. Se un’entità ha una relazione con un’altra entità, può riutilizzare il codice semplicemente riferendolo.
Esempio di aggregazione
Ora lo capiamo usando un esempio, qui abbiamo creato due classi Author e Book e la classe Book ha una relazione con la classe Author avendo il suo riferimento. Ora siamo in grado di ottenere tutte le proprietà di entrambe le classi.
Nome del libro: Java per BegginerBook Prezzo: 800————Dettagli autore———-Auther Name: JohnAuther Age: 42Auther place: USA
Prendiamo un altro esempio per capire l’aggregazione. Supponiamo di avere un altro editore di classe, quindi la classe Book può riutilizzare i dettagli della classe Publisher semplicemente usando il suo riferimento come classe Author. Consente di capire dal codice Java.
Composizione in Java
La composizione è una forma di aggregazione più ristretta. La composizione può essere descritta come quando una classe che include un’altra classe dipende da essa in modo tale che non possa esistere funzionalmente senza la classe che è inclusa. Ad esempio una classe Car
non può esistere senza Engine
, poiché non sarà più funzionale.
Quindi la parola Composizione che significa che gli elementi di cui è fatto qualcosa e se cambiamo la composizione delle cose cambiano, allo stesso modo nelle classi Java, una classe che include un’altra classe è chiamata composizione se la classe inclusa fornisce un significato funzionale principale alla classe esterna.
class Car{ private Engine engine; Car(Engine en) { engine = en; }}
Qui esaminando il codice, possiamo capire che se la classe Auto non ha relazione con la classe Motore, allora l’auto non ha esistenza.
La composizione è una tecnica di progettazione, non una caratteristica di Java, ma possiamo ottenerla usando il codice Java.
Q. Quando utilizzare l’ereditarietà e l’aggregazione?
Quando si desidera utilizzare alcune proprietà o comportamenti di qualsiasi classe senza il requisito di modificarlo o aggiungere più funzionalità ad esso, in tal caso l’aggregazione è un’opzione migliore perché in caso di aggregazione stiamo solo usando qualsiasi classe esterna all’interno della nostra classe come variabile.
Mentre quando si desidera utilizzare e modificare alcune proprietà o comportamenti di qualsiasi classe esterna o si desidera aggiungere più funzioni su di esso, è meglio usare l’ereditarietà.
Per capire di più sull’ereditarietà, puoi visitare il nostro tutorial dettagliato qui. Clicca qui per vedere l’ereditarietà in Java