Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Ejercicio de POO con modificaciones

Saludos. Adjunto mi versión de ejercicio. Estoy atento ante cualquier novedad. Espero les sirva.

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>FirstProgram</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>RELEASE</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

</project>

Servicio

package Services;

import Implementations.Clasificacion;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class FiltroRecomendacion {

    private final Clasificacion clasificacion;
    private String mensaje;

    public void filtrar(){
        mensaje = (clasificacion.getClasificacion() >= 4) ? "Muy bien evaluado en el momento"
                : (clasificacion.getClasificacion() >= 2) ? "Popular en el momento"
                : "Colocalo en tu lista para verlo despues";
        System.out.println(mensaje);
    }
}

entidad episodio

package Models;

import Implementations.Clasificacion;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@NoArgsConstructor
@AllArgsConstructor
@Data
public class Episodio implements Clasificacion {

    private int numero;
    private String nombre;
    private Serie serie;
    private int totalVisualizaciones;

    @Override
    public int getClasificacion() {
        return (totalVisualizaciones > 100) ? 4 : 2;
    }
}

entidad pelicula

package Models;

import Implementations.Clasificacion;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@NoArgsConstructor
@AllArgsConstructor
@Data
@ToString (callSuper = true)
public final class Pelicula extends Titulo implements Clasificacion {

    private String director;

    @Override
    public void evalua(double nota) {
        super.evalua(nota);
    }

    @Override
    public int getClasificacion() {
        return (int) getMediaEvaluaciones();
    }
}

implementaciones

package Implementations;

public interface Clasificacion {
    int getClasificacion();
}

contenedor de ejecución

package org.example;

import Models.Episodio;
import Models.Pelicula;
import Models.Serie;
import Services.FiltroRecomendacion;

import java.util.Scanner;

public class Main {

//    private static final Scanner entry = new Scanner(System.in).useDelimiter("\n");
    public static void main(String[] args) {
        //Instanciación películas y series
        Pelicula pelicula = new Pelicula();
        Serie serie = new Serie();

        //seteo de parámetros objeto pelicula
        pelicula.setNombre("Encanto");
        pelicula.setFechaLanzamiento(2021);
        pelicula.setDuracionMinutos(120);
        pelicula.setDirector("Alfredo");

        //Evaluación película encanto
        pelicula.evalua(4.6);
        pelicula.evalua(4.9);
        pelicula.evalua(4.4);

        //Seteo parametros serie
        serie.setNombre("lucifer");
        serie.setFechaLanzamiento(2013);
        serie.setTemporada(6);
        serie.setMinutosPorEpisodio(50);
        serie.setEpisodiosPorTemporada(13);
        serie.setDuracionMinutos(serie.getDuracionMinutos());

        //Evaluación serie lucifer
        serie.evalua(5.6);
        serie.evalua(4.9);
        serie.evalua(9.8);

        FiltroRecomendacion filtroRecomendacion = new FiltroRecomendacion(pelicula);
        filtroRecomendacion.filtrar();

        Episodio episodio = new Episodio();
        episodio.setNombre("A devil of my word");
        episodio.setNumero(3);
        episodio.setSerie(serie);
        episodio.setTotalVisualizaciones(1450);
        FiltroRecomendacion filtroSerie = new FiltroRecomendacion(episodio);
        filtroSerie.filtrar();


        //Impresiones por pantalla de los objetos
        System.out.println("Detalles película: \n" + pelicula.toString());
        System.out.println("Detalles serie: \n" + serie.toString());

    }
}
1 respuesta

Hola Alejandro, espero que estés bien

Gracias por compartir tu ejercício práctico con nosotros! Tu contribución es fundamental para el crecimiento de nuestra comunidad en Alura. Sigue comprometido y no dudes en regresar al foro en caso que tengas alguna duda o dificultad.

¡Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!