Criar a interface Classificavel:
package br.com.alura.screenmatch.calculos;
public interface Classificavel {
int getClassificacao();
}
Implementar a interface Classificavel e o método getClassificacao na classe Filme:
package br.com.alura.screenmatch.modelos;
import br.com.alura.screenmatch.calculos.Classificavel;
public class Filme extends Titulo implements Classificavel {
private String diretor;
public String getDiretor() {
return diretor;
}
public void setDiretor(String diretor) {
this.diretor = diretor;
}
@Override
public int getClassificacao() {
return (int) pegaMedia() / 2;
}
}
Implementar a interface Classificavel, implementar o método getClassificacao e adicionar novo atributo totalVisualizacoes na Classe Episodio:
package br.com.alura.screenmatch.modelos;
import br.com.alura.screenmatch.calculos.Classificavel;
public class Episodio implements Classificavel {
private int numero;
private String nome;
private Serie serie;
private int totalVisualizacoes;
//getters e setters
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Serie getSerie() {
return serie;
}
public void setSerie(Serie serie) {
this.serie = serie;
}
public int getTotalVisualizacoes() {
return totalVisualizacoes;
}
public void setTotalVisualizacoes(int totalVisualizacoes) {
this.totalVisualizacoes = totalVisualizacoes;
}
@Override
public int getClassificacao() {
if (totalVisualizacoes > 100) {
return 4;
} else {
return 2;
}
}
}
Criar a classe FiltroRecomendacao:
package br.com.alura.screenmatch.calculos;
public class FiltroRecomendacao {
private String recomendacao;
public void filtra(Classificavel classificavel) {
if (classificavel.getClassificacao() >= 4) {
System.out.println("Esta entre os preferidos do momento!");
} else if (classificavel.getClassificacao() >= 2) {
System.out.println("Muito bem avaliado no momento!");
} else {
System.out.println("Coloque na sua lista para assistir depois!");
}
}
}
Alterar a classe Principal, criando um objeto FiltroRecomendacao:
FiltroRecomendacao filtro = new FiltroRecomendacao();
filtro.filtra(meuFilme);
Episodio episodio = new Episodio();
episodio.setNumero(1);
episodio.setSerie(lost);
episodio.setTotalVisualizacoes(300);
filtro.filtra(episodio);