在Java中,組合是一種設計技術,用於在類別中實現“有一”的關係。我們可以使用Java繼承或Java中的對象組合來實現代碼重用。
Java中的組合
Java組合是通過使用引用其他對象的實例變量來實現的。例如,一個
人
有一個工作
。讓我們通過一個Java組合示例代碼來看看這一點。
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 {
//組合有一關係
private Job job;
public Person(){
this.job=new Job();
job.setSalary(1000L);
}
public long getSalary() {
return job.getSalary();
}
}
以下是Java組合示例的測試類,該類使用人對象並獲取其薪水。
package com.journaldev.composition;
public class TestPerson {
public static void main(String[] args) {
Person person = new Person();
long salary = person.getSalary();
}
}
Java組合的好處
注意,上面的 Java 组合测试程序不受 Job 对象的任何更改的影响。如果你正在寻找代码重用并且两个类之间的关系是拥有,那么你应该使用组合而不是继承。在 Java 中使用组合的好处是我们可以控制其他对象对客户类的可见性,并且仅重用我们需要的部分。此外,如果其他类实现中有任何更改,例如getSalary
返回 String,我们需要更改 Person 类来适应,但客户类不需要更改。组合允许在需要时创建后端类,例如我们可以在需要时更改Person
的getSalary
方法以在运行时初始化 Job 对象。进一步阅读:你知道 Java 编程中的最佳实践之一是使用组合而不是继承,查看这篇文章以获取组合与继承的详细分析。
Java 组合 Youtube 视频
最近我创建了一个YouTube视频,详细解释了Java中的组合,请在下方观看。 https://www.youtube.com/watch?v=VfTiLE3RZds 这就是关于Java中的组合或Java组合示例的全部内容。我希望您在设计应用程序类时会发现它有用。参考:Wikipedia页面
Source:
https://www.digitalocean.com/community/tutorials/composition-in-java-example