Composition trong java là kỹ thuật thiết kế để thực hiện mối quan hệ có-một trong các lớp. Chúng ta có thể sử dụng kế thừa trong Java hoặc Composition trong java để sử dụng lại mã.
Composition Java đạt được bằng cách sử dụng các biến thể hiện tham chiếu đến các đối tượng khác. Ví dụ, một Person
có một Job. Hãy xem điều này với mã ví dụ về Composition java.
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;
}
}
Code language: PHP (php)
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();
}
}
Code language: PHP (php)
Đây là một class test cho ví dụ về composition java sử dụng đối tượng person và nhận được tiền lương của nó.
public class TestPerson {
public static void main(String[] args) {
Person person = new Person();
long salary = person.getSalary();
}
}
Code language: JavaScript (javascript)
Lợi ích của Composition Java
Lưu ý rằng chương trình kiểm tra ở trên cho Composition trong java không bị ảnh hưởng bởi bất kỳ thay đổi nào trong đối tượng Job. Nếu bạn đang tìm cách sử dụng lại mã và mối quan hệ giữa hai lớp là has-a thì bạn nên sử dụng Composition thay vì kế thừa.
Lợi ích của việc sử dụng Composition trong java là chúng ta có thể kiểm soát khả năng hiển thị của đối tượng khác đối với các lớp client và chỉ sử dụng lại những gì chúng ta cần.
Ngoài ra, nếu có bất kỳ thay đổi nào trong việc triển khai lớp khác, ví dụ: chuỗi trả về getSalary, chúng ta cần thay đổi lớp Person để phù hợp với nó nhưng các lớp khách không cần thay đổi.
Composition cho phép tạo lớp back-end khi cần thiết, chẳng hạn như chúng ta có thể thay đổi phương thức Person getSalary để khởi tạo đối tượng Job trong thời gian chạy khi được yêu cầu.
Đó là tất cả đối với Composition trong java hoặc ví dụ về Composition java. Tôi hy vọng bạn sẽ thấy nó hữu ích trong việc đưa ra quyết định sáng suốt khi thiết kế các lớp ứng dụng của mình.
Happy learrning!!!