La composizione in Java è la tecnica di progettazione per implementare la relazione has-a nelle classi. Possiamo utilizzare l’ereditarietà Java o la composizione di oggetti in Java per il riutilizzo del codice.
Composizione in Java
La composizione in Java è ottenuta utilizzando variabili di istanza che si riferiscono ad altri oggetti. Ad esempio, una
Persona
ha un Lavoro
. Vediamo questo con un esempio di codice di composizione Java.
Esempio di Composizione Java
package com.journaldev.composition;
public class Job {
private String role;
private long salary;
private int id;
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public long getSalary() {
return salary;
}
public void setSalary(long salary) {
this.salary = salary;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
package com.journaldev.composition;
public class Person {
// composizione has-a relationship
private Job job;
public Person(){
this.job=new Job();
job.setSalary(1000L);
}
public long getSalary() {
return job.getSalary();
}
}
Ecco una classe di test per un esempio di composizione Java che utilizza un oggetto persona e ne ottiene lo stipendio.
package com.journaldev.composition;
public class TestPerson {
public static void main(String[] args) {
Person person = new Person();
long salary = person.getSalary();
}
}
Vantaggi della Composizione Java
Si noti che il programma di test sopra per la composizione in Java non è influenzato da alcuna modifica nell’oggetto Job. Se stai cercando il riutilizzo del codice e la relazione tra due classi è ha-un, allora dovresti utilizzare la composizione invece dell’ereditarietà. Il vantaggio dell’utilizzo della composizione in Java è che possiamo controllare la visibilità di altri oggetti alle classi client e riutilizzare solo ciò di cui abbiamo bisogno. Inoltre, se c’è un cambiamento nell’implementazione dell’altra classe, ad esempio getSalary
che restituisce una stringa, è necessario modificare la classe Person per adattarla, ma le classi client non hanno bisogno di cambiare. La composizione consente la creazione di una classe di backend quando è necessario, ad esempio possiamo modificare il metodo getSalary
di Person per inizializzare l’oggetto Job al momento dell’esecuzione quando richiesto. Ulteriori letture: Sai una delle migliori pratiche nella programmazione Java è utilizzare la composizione anziché l’ereditarietà, dai un’occhiata a questo post per un’analisi dettagliata di Composizione vs Ereditarietà.
Video di composizione Java su Youtube
Di recente ho creato un video su YouTube per spiegare dettagliatamente la composizione in Java, per favore guardalo qui sotto. https://www.youtube.com/watch?v=VfTiLE3RZds Questo è tutto per la composizione in Java o l’esempio di composizione in Java. Spero che lo troverai utile nel prendere decisioni informate durante la progettazione delle classi della tua applicazione. Riferimento: Pagina Wikipedia
Source:
https://www.digitalocean.com/community/tutorials/composition-in-java-example