Автор оригинала: 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. Я надеюсь, что вы найдете это полезным для принятия обоснованных решений при разработке классов приложений.
Ссылка: Страница Википедии