Compositie in Java is de ontwerp techniek om de heeft-een relatie te implementeren in klassen. We kunnen Java-erfenis of Objectcompositie in Java gebruiken voor hergebruik van code.
Compositie in Java
Java-compositie wordt bereikt door het gebruik van instantievariabelen die verwijzen naar andere objecten. Bijvoorbeeld, een
Persoon
heeft een Baan
. Laten we dit zien aan de hand van een voorbeeld van Java-compositiecode.
Voorbeeld van Java-compositie
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 {
//compositie heeft-een relatie
private Job job;
public Person(){
this.job=new Job();
job.setSalary(1000L);
}
public long getSalary() {
return job.getSalary();
}
}
Hier is een testklasse voor een voorbeeld van Java-compositie die het persoonobject gebruikt en het salaris ervan ophaalt.
package com.journaldev.composition;
public class TestPerson {
public static void main(String[] args) {
Person person = new Person();
long salary = person.getSalary();
}
}
Voordelen van Java-compositie
Let op dat het bovenstaande testprogramma voor compositie in Java niet wordt beïnvloed door een verandering in het Job-object. Als je op zoek bent naar codehergebruik en de relatie tussen twee klassen is heeft-een dan moet je compositie gebruiken in plaats van overerving. Het voordeel van het gebruik van compositie in Java is dat we de zichtbaarheid van andere objecten voor klassecliënten kunnen controleren en alleen hergebruiken wat we nodig hebben. Ook als er een wijziging is in de implementatie van de andere klasse, bijvoorbeeld getSalary
die een String retourneert, moeten we de Person-klasse aanpassen om dit te accommoderen, maar klassecliënten hoeven dat niet te doen. Compositie maakt de creatie van een back-end klasse mogelijk wanneer dat nodig is, bijvoorbeeld we kunnen de getSalary
-methode van de Persoonklasse wijzigen om het Job-object tijdens runtime te initialiseren wanneer dat vereist is. Verdere Lezing: Weet je dat een van de beste praktijken in Java-programmering is om compositie boven overerving te gebruiken, bekijk deze post voor een gedetailleerde analyse van Compositie vs Overerving.
Java Compositie Youtube-video
Onlangs heb ik een YouTube-video gemaakt om compositie in Java in detail uit te leggen, bekijk hem hieronder. https://www.youtube.com/watch?v=VfTiLE3RZds Dat is alles voor compositie in Java of een voorbeeld van Java-compositie. Ik hoop dat je het nuttig zult vinden bij het nemen van geïnformeerde beslissingen bij het ontwerpen van de klassen van je applicatie. Referentie: Wikipedia-pagina
Source:
https://www.digitalocean.com/community/tutorials/composition-in-java-example