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

Versión de ejercicio POO

Saludos team. Comparto la forma en la cual estructuré el ejercicio del aula virtual sobre POO. Espero les pueda servir. Estoy atento ante cualquier novedad.

Archivo pom

<?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>

Entidad película

package Models;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@NoArgsConstructor
@AllArgsConstructor
@Data
public class Pelicula {

    private String nombre;
    private int fechaLanzamiento;
    private int duracionMinutos;
    private boolean incluidoEnPlan;
    private double sumaEvaluaciones;
    private int totalEvaluaciones;
    private double mediaEvaluaciones;
}

Lógica de negocio (servicio)

package Services;

import Models.Pelicula;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class PeliculaService {

    private final Pelicula pelicula;

    public void evalua(double nota){
        pelicula.setSumaEvaluaciones(pelicula.getSumaEvaluaciones() + nota);
        pelicula.setTotalEvaluaciones(pelicula.getTotalEvaluaciones() + 1);
        pelicula.setMediaEvaluaciones(pelicula.getSumaEvaluaciones()/ pelicula.getTotalEvaluaciones());
    }
}

Contenedor de ejecución

package org.example;

import Models.Pelicula;
import Services.PeliculaService;

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
        Pelicula pelicula = new Pelicula();
        Pelicula otraPelicula = new Pelicula("matrix", 1998,
                188, false, 3.8, 1, 0);

        //Instanciación servicios con inyección de dependencia por constructor
        PeliculaService servicioEncanto = new PeliculaService(pelicula);
        PeliculaService servicioMatrix = new PeliculaService(otraPelicula);

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

        //Evaluación película encanto
        servicioEncanto.evalua(4.9);
        servicioEncanto.evalua(8.4);
        servicioEncanto.evalua(8.6);

        //Evaluación película matrix
        servicioMatrix.evalua(4.9);

        //Impresiones por pantalla de los objetos
        System.out.println("Detalles película: \n" + pelicula.toString());
        System.out.println("Detalles otra película: \n" + otraPelicula.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!