Exemplo de Composição em Java

A composição em Java é a técnica de design para implementar o relacionamento tem-um em 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 {

    //relacionamento de composição tem-um
    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 um objeto pessoa e obtém seu salário.

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

Note que o programa de teste acima para composição em Java não é afetado por nenhuma mudança no objeto Job. Se você está procurando 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 cliente 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 cliente não precisam mudar. A composição permite a criação de uma classe de back-end quando necessário, por exemplo, podemos alterar o método getSalary da classe 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 vs 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 ao 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