Композиция в 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
возвращает строку, нам нужно изменить класс Person, чтобы адаптировать его, но клиентским классам это делать не нужно. Композиция позволяет создавать классы на стороне сервера только при необходимости, например, мы можем изменить метод getSalary
класса Person для инициализации объекта 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