Interfaz Clasificacion:
package com.aluracursos.screenmatch.calculos;
public interface Clasificacion {
int getClasificacion();
}
Clase Pelicula modificada:
package com.aluracursos.screenmatch.modelos;
import com.aluracursos.screenmatch.calculos.Clasificacion;
public class Pelicula extends Titulo implements Clasificacion {
private String director;
public String getDirector() {
return director;
}
public void setDirector(String director) {
this.director = director;
}
@Override
public int getClasificacion() {
return (int) calculoMedia()/2;
}
}
Clase Episodio modificada:
package com.aluracursos.screenmatch.modelos;
import com.aluracursos.screenmatch.calculos.Clasificacion;
public class Episodio implements Clasificacion {
private int numero;
private String nombre;
private Serie serie;
private int totalVisualizaciones;
public int getTotalVisualizaciones() {
return totalVisualizaciones;
}
public void setTotalVisualizaciones(int totalVisualizaciones) {
this.totalVisualizaciones = totalVisualizaciones;
}
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public Serie getSerie() {
return serie;
}
public void setSerie(Serie serie) {
this.serie = serie;
}
@Override
public int getClasificacion() {
if(totalVisualizaciones > 100){
return 4;
} else {
return 2;
}
}
}
Clase FiltroRecomendacion
package com.aluracursos.screenmatch.calculos;
public class FiltroRecomendacion {
public void filtra(Clasificacion clasificacion){
if(clasificacion.getClasificacion() >= 4){
System.out.println("Muy bien evaluado en el momento");
} else if (clasificacion.getClasificacion() >= 2) {
System.out.println("Popular en el momento");
} else {
System.out.println("Colocalo en tu lista para verlo despues");
}
}
}
Clase Principal modificada:
import com.aluracursos.screenmatch.calculos.CalculadoraDeTiempo;
import com.aluracursos.screenmatch.calculos.FiltroRecomendacion;
import com.aluracursos.screenmatch.modelos.Episodio;
import com.aluracursos.screenmatch.modelos.Pelicula;
import com.aluracursos.screenmatch.modelos.Serie;
public class Principal {
public static void main(String[] args) {
Pelicula miPelicula = new Pelicula();
miPelicula.setNombre("Reyes de las olas");
miPelicula.setFechaDeLanzamiento(2006);
miPelicula.setDuracionEnMinutos(120);
miPelicula.setIncluidoEnElPlan(true);
miPelicula.muestraFichaTecnica();
miPelicula.evalua(10);
miPelicula.evalua(8);
System.out.println(miPelicula.getTotalDeLasEvaluaciones());
System.out.println(miPelicula.calculoMedia());
Serie cyberpunkEdgeRunners = new Serie();
cyberpunkEdgeRunners.setNombre("Cyberpunk: Edgerunners");
cyberpunkEdgeRunners.setFechaDeLanzamiento(2022);
cyberpunkEdgeRunners.setTemporadas(1);
cyberpunkEdgeRunners.setMinutosPorEpisodio(25);
cyberpunkEdgeRunners.setEpisodiosPorTemporada(10);
cyberpunkEdgeRunners.muestraFichaTecnica();
System.out.println(cyberpunkEdgeRunners.getDuracionEnMinutos());
Pelicula otraPelicula = new Pelicula();
otraPelicula.setNombre("Super Mario");
otraPelicula.setFechaDeLanzamiento(2023);
otraPelicula.setDuracionEnMinutos(90);
CalculadoraDeTiempo calculadora = new CalculadoraDeTiempo();
calculadora.incluye(miPelicula);
calculadora.incluye(cyberpunkEdgeRunners);
calculadora.incluye(otraPelicula);
System.out.println("Tiempo estimado para visualización: " + calculadora.getTiempoTotal() + " minutos");
FiltroRecomendacion filtroRecomendacion = new FiltroRecomendacion();
filtroRecomendacion.filtra(miPelicula);
Episodio episodio = new Episodio();
episodio.setNumero(1);
episodio.setNombre("Let You Down");
episodio.setSerie(cyberpunkEdgeRunners);
episodio.setTotalVisualizaciones(300);
filtroRecomendacion.filtra(episodio);
}
}