Java中的组合是一种实现类之间拥有关系的设计技术。我们可以使用Java继承或Java对象组合来实现代码重用。
Java中的组合
Java组合是通过使用引用其他对象的实例变量来实现的。例如,一个
Person
拥有一个Job
。让我们通过一个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组合示例的测试类,它使用person对象并获取其工资。
package com.journaldev.composition;
public class TestPerson {
public static void main(String[] args) {
Person person = new Person();
long salary = person.getSalary();
}
}
Java组合的好处
请注意,上述用于在Java中进行组合的测试程序不受作业对象的任何更改的影响。如果您正在寻找代码重用和两个类之间的关系是has-a,那么您应该使用组合而不是继承。在Java中使用组合的好处是我们可以控制其他对象对客户类的可见性,并仅重用我们需要的部分。此外,如果其他类实现中有任何更改,例如getSalary
返回String,我们需要更改Person类来适应它,但客户类不需要更改。组合允许在需要时创建后端类,例如,我们可以在运行时将Person
的getSalary
方法更改为在需要时初始化Job对象。进一步阅读:您知道在Java编程中最佳实践之一是使用组合而不是继承,查看此帖子以获取组合与继承的详细分析。
Java组合Youtube视频
最近,我创建了一个YouTube视频,详细解释了Java中的组合,请在下方观看。 https://www.youtube.com/watch?v=VfTiLE3RZds 关于Java中的组合或Java组合示例就是这些了。我希望你在设计应用程序类时会发现它有用。参考资料:维基百科页面
Source:
https://www.digitalocean.com/community/tutorials/composition-in-java-example