Автор оригинала: Pankaj Kumar.
Композиция в java-это метод проектирования для реализации отношений has-a в классах. Мы можем использовать наследование 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 {
//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 не зависит от каких-либо изменений в объекте задания. Если вы ищете повторное использование кода и связь между двумя классами имеет-a , то вам следует использовать композицию, а не наследование.
Преимущество использования композиции в java заключается в том, что мы можем контролировать видимость других объектов для клиентских классов и повторно использовать только то, что нам нужно.
Также, если есть какие-либо изменения в реализации другого класса, например getSalary возвращающая строка, нам нужно изменить класс Person, чтобы приспособить его, но клиентские классы не нуждаются в изменении.
Композиция позволяет создавать внутренний класс, когда это необходимо, например, мы можем изменить Person | getSalary метод для инициализации объекта задания во время выполнения, когда это необходимо.
Дальнейшее чтение: Знаете ли вы, что одной из лучших практик в программировании на Java является использование композиции вместо наследования, ознакомьтесь с этим постом для подробного анализа Композиция против наследования .
Java Композиция Видео на Youtube
Недавно я создал видео на YouTube, чтобы подробно объяснить композицию на java, пожалуйста, посмотрите его ниже.
Это все для композиции в java или примере композиции java. Я надеюсь, что вы найдете это полезным для принятия обоснованных решений при разработке классов приложений.
Ссылка: Страница Википедии