La composición en Java es la técnica de diseño para implementar la relación has-a en las clases. Podemos utilizar la herencia de Java o la composición de objetos en Java para la reutilización de código.
Composición en Java
La composición en Java se logra mediante el uso de variables de instancia que hacen referencia a otros objetos. Por ejemplo, a Persontiene un Job. Veamos esto con un código de ejemplo de composición en Java.
Ejemplo de composición en 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(); }}
Aquí hay una clase de prueba para un ejemplo de composición de Java que usa un objeto persona y obtiene su salario.
package com.journaldev.composition;public class TestPerson { public static void main(String[] args) { Person person = new Person(); long salary = person.getSalary(); }}
Beneficios de la composición en Java
Tenga en cuenta que el programa de prueba anterior para la composición en Java no se ve afectado por ningún cambio en el objeto Job. Si está buscando reutilización de código y la relación entre dos clases es has-a , entonces debe usar composición en lugar de herencia. El beneficio de usar composición en Java es que podemos controlar la visibilidad de otros objetos para las clases del cliente y reutilizar solo lo que necesitamos. Además, si hay algún cambio en la implementación de la otra clase, por ejemplo, getSalarydevolver String, necesitamos cambiar la clase Person para acomodarlo, pero las clases del cliente no necesitan cambiar. La composición permite la creación de una clase de back-end cuando es necesario, por ejemplo, podemos cambiar Person getSalaryel método para inicializar el objeto Job en tiempo de ejecución cuando sea necesario. Lectura adicional: ¿Sabe que una de las mejores prácticas en la programación Java es usar composición en lugar de herencia? Consulte esta publicación para obtener un análisis detallado de Composición vs Herencia .
Vídeo de Youtube sobre composición en Java
Recientemente creé un video de YouTube para explicar la composición en Java en detalle. Mírelo a continuación: https://www.youtube.com/watch?v=VfTiLE3RZds Eso es todo sobre la composición en Java o el ejemplo de composición en Java. Espero que lo encuentre útil para tomar decisiones informadas al diseñar las clases de su aplicación. Referencia: Página de Wikipedia