Java中的组合示例
时间:2020-02-23 14:36:11 来源:igfitidea点击:
Java中的组合是在类中实现has-a关系的设计技术。
我们可以在Java中使用Java继承或者Object组合进行代码重用。
用Java编写
Java组合是通过使用引用其他对象的实例变量来实现的。
例如,一个"人"有一个"工作"。
让我们看一下Java合成示例代码。
Java撰写范例
package com.theitroad.localposition; 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.theitroad.localposition; 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.theitroad.localposition; 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编程中的最佳实践之一是使用组合而不是继承,请查看这篇文章,以详细分析组合与继承。