Composição em Java Exemplo

A composição em Java é a técnica de design para implementar o relacionamento “tem-um” nas classes. Podemos usar herança em Java ou composição de objetos em Java para reutilização de código.

Composição em Java

A composição em Java é alcançada usando variáveis de instância que se referem a outros objetos. Por exemplo, uma Pessoa tem um Trabalho. Vamos ver isso com um exemplo de código de composição em Java.

Exemplo de Composição em 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 {

    // composição tem-um relacionamento
    private Job job;
   
    public Person(){
        this.job=new Job();
        job.setSalary(1000L);
    }
    public long getSalary() {
        return job.getSalary();
    }

}

Aqui está uma classe de teste para o exemplo de composição em Java que usa o objeto pessoa e obtém o salário dele.

package com.journaldev.composition;

public class TestPerson {

    public static void main(String[] args) {
        Person person = new Person();
        long salary = person.getSalary();
    }

}

Vantagens da Composição em Java

Observe que o programa de teste acima para composição em Java não é afetado por nenhuma mudança no objeto Job. Se você está buscando reutilização de código e a relação entre duas classes é tem-um, então você deve usar composição em vez de herança. O benefício de usar composição em Java é que podemos controlar a visibilidade de outros objetos para as classes clientes e reutilizar apenas o que precisamos. Além disso, se houver alguma mudança na implementação da outra classe, por exemplo, getSalary retornando String, precisamos alterar a classe Person para acomodá-la, mas as classes clientes não precisam mudar. A composição permite a criação da classe de backend quando necessário, por exemplo, podemos alterar o método getSalary de Person para inicializar o objeto Job em tempo de execução quando necessário. Leitura adicional: Você sabia que uma das melhores práticas na programação Java é usar composição em vez de herança, confira este post para uma análise detalhada de Composição versus Herança.

Vídeo do Youtube sobre Composição em Java

Recentemente, criei um vídeo no YouTube para explicar a composição em Java em detalhes, por favor assista abaixo. https://www.youtube.com/watch?v=VfTiLE3RZds Isso é tudo sobre composição em Java ou exemplo de composição em Java. Espero que você o ache útil para tomar decisões informadas ao projetar as classes de sua aplicação. Referência: Página da Wikipedia

Source:
https://www.digitalocean.com/community/tutorials/composition-in-java-example