1
resposta

Criando construtores

Me baseando no que foi dito em aula, eu optei por fazer de uma forma um pouco diferente os meus construtores, por ser a maneira que eu considerei que mais faça sentido.

Titulo.java

public Titulo(String nome, int anoDeLancamento, int duracoesEmMinutos){
        this.nome = nome;
        this.anoDeLancamento = anoDeLancamento;
        this.duracoesEmMinutos = duracoesEmMinutos;
    }

    public Titulo(String nome, int anoDeLancamento){
        this.nome = nome;
        this.anoDeLancamento = anoDeLancamento;
    }

Filme.java

public Filme(String nome, int anoDeLancamento, int duracoesEmMinutos){
        super(nome, anoDeLancamento, duracoesEmMinutos);
        this.setDuracoesEmMinutos(duracoesEmMinutos);
    }

Serie.java

public Serie(String nome, int anoDeLancamento, int temporadas, int episodiosPorTemporada, int minutosPorEpisodio){
        super(nome, anoDeLancamento);
        this.temporadas = temporadas;
        this.episodiosPorTemporada = episodiosPorTemporada;
        this.minutosPorEpisodio = minutosPorEpisodio;
    }

na serie eu deixei todos os atributos do meu construtor ainda tendo seus respectivos metodos set, para o caso da serie ser continuada ou não, pretendo futuramente buscar uma maneira de validar a necessidade de um metodo set a partir de um booleano do atributo finalizada, excluindo a necessidade caso seja true

1 resposta

Oi, Diego! Como vai?

Gostei bastante da forma como você estruturou os construtores utilizando sobrecarga e também da separação de responsabilidades entre Titulo, Filme e Serie. Sua ideia de manter os métodos set na classe Serie pensando em séries ainda em andamento, faz muito sentido e mostra uma preocupação interessante com regras de negócio e evolução dos dados da aplicação.

Uma dica interessante para o futuro é utilizar validações dentro dos métodos set para evitar alterações quando a série estiver finalizada. Veja este exemplo:


private boolean finalizada;

public void setTemporadas(int temporadas){
if(!finalizada){
this.temporadas = temporadas;
}
}

Nesse código, o atributo temporadas só pode ser alterado quando finalizada for false, ajudando a proteger os dados do objeto.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!