Java 中的组合示例
Java 中的组合是实现类中has-a关系的设计技术。我们可以使用Java 继承或 Java 中的对象组合来实现代码重用。
Java中的组合
Java 组合是通过使用引用其他对象的实例变量来实现的。例如, aPerson
有一个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 {
//composition has-a relationship
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 组合测试程序不受 Job 对象任何更改的影响。如果您正在寻找代码重用,并且两个类之间的关系是has-a,那么您应该使用组合而不是继承。在 Java 中使用组合的好处是,我们可以控制其他对象对客户端类的可见性,并只重用我们需要的内容。此外,如果其他类实现有任何变化,例如getSalary
返回 String,我们需要更改 Person 类以适应它,但客户端类不需要更改。组合允许在需要时创建后端类,例如,我们可以Person
getSalary
在需要时更改方法以在运行时初始化 Job 对象。进一步阅读:您知道 Java 编程中的最佳实践之一是使用组合而不是继承吗?请查看此帖子以详细分析组合与继承。
Java Composition Youtube 视频
最近我制作了一个 YouTube 视频来详细解释 Java 中的组合,请在下面观看。https ://www.youtube.com/watch ?v=VfTiLE3RZds 这就是 Java 中的组合或 Java 组合示例的全部内容。我希望您在设计应用程序类时会发现它有助于做出明智的决定。参考:维基百科页面