Realice lo solicitado creando interfaces y clases con el fin de aplicar POO en el codigo de la clase pincipal cusqueda con api ¿ que mejoras se pueden realizar al código ingresado? ¿ las clases implementadas son suficientes?
package com.aluracursos.POO.Principal;
import com.aluracursos.POO.exepcion.ErrorFaltaDuracionEnMinutosExepcion;
import com.aluracursos.POO.modelos.*;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class ClaseBusquedaPoo {
public static void main(String[] args) throws IOException, InterruptedException {
ComunicacionDatosUsuario ingreso = new ComunicacionDatosUsuario();
ArrayList<Titulo> titulos = new ArrayList<>();
BusquedaApi busquedaApi = new BusquedaApi();
ConversionDatos conversionDatos = new ConversionDatos();
CrearArchivo archivoJson = new CrearArchivo();
ingreso.menuInicial();
while (true){
ingreso.menu2();
var opcion = ingreso.leerInt();
if (opcion == 2){
break;
}
try {
ingreso.menu1();
ingreso.limpiarLinea();
var busqueda = ingreso.leerLinea();
String datosJson = busquedaApi.buscarPelicula(busqueda);
System.out.println(datosJson);
System.out.println(conversionDatos.convertir(datosJson));
var titulo = conversionDatos.convertir(datosJson);
titulos.add(titulo);
} catch (NumberFormatException e){
System.err.println(e.getMessage());
} catch (ErrorFaltaDuracionEnMinutosExepcion e){
System.err.println(e.getMessage());
}catch (Exception e){
System.err.println(e.getMessage());
}
}
System.out.println(titulos);
ingreso.limpiarLinea();
ingreso.nombreArchivo();
var nombreArchivo =ingreso.leerLinea();
archivoJson.crearArchivo(nombreArchivo,conversionDatos.
convertirAJson(titulos));
ingreso.cerrar();
}
}
Quedo atento a sus comentarios