Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida: Composição

Olá.

Supondo que estou desenvolvendo um sistema para uma livraria, onde o livro é um produto. Futuramente esta livraria pode vir a vender outros tipos de produto com outras características específicas, como jogos de videogame. Neste cenário eu consigo enxergar a herança como Produto<-Livro, mas na composição não. Como eu faria isso? Gostaria de reutilizar atributos/métodos genéricos de Produto.

Obrigado.

2 respostas
solução!

Oi Flávio! Tudo bem?

A herança garante que as classes que herdam tenham as mesmas características da classe pai.

Em se pensar em produto, você pode modelar de forma que tudo que se vender é um produto e nesta classe você coloca todos o que é comum entre livros, video grames, filmes, CD/DVD, etc.

Assim poderia ser modelado dessa maneira:

import java.util.ArrayList;
import java.util.Collection;

public class Product {

    private String id;
    private String name;
    private String description;
    private Boolean active;
    private String imageURL;
    private Collection<String> tags = new ArrayList<>();

    /* ommited getters and setters */

}

class Book extends Product {

    private String pages;
    private Collection<Author> authors = new ArrayList<>();
    private String type;

    /* ommited getters and setters */

}

class Games extends Product {

    private String pages;
    private String gamePlayUrl;

    /* ommited getters and setters */

}

Como você pode ver, tudo que é comum, deve ser colocado na classe pai.

Espero ter ajudado,

Abraço e sucesso,

Rodrigo

Olá Rodrigo!

Muito obrigado pela resposta, ficou bem esclarecido!

Abraço.