Hola Omar.
El ejercicio pide:
4) Añadir una canción al disco recibiendo como información para ello el título de la canción y su duración (se añadirá como última canción en el disco. Si el disco tenía por ejemplo 10 canciones, al añadirse una canción pasará a tener 11).
Aquí
la acción es AÑADIR una canción. Y para poder añadirla necesitas título y duración, así que lo ideal es indicar esos dos datos en el mismo método.
Realmente no hay una norma obligatoria a seguir, al final el programador decide como hacer las cosas en cada situación y siempre buscando la forma más óptima.
Se podría hacer un método para añadir la canción solo con el nombre. Y luego otro para modificar ese registro recién añadido para ahora sí incluir el tiempo de duración.
Pero, ¿tiene sentido realizar dos acciones cuando se puede obtener el mismo resultado realizando una única acción?
Al final el programa va a funcionar igual, pero es más óptimo y eficiente reducirlo a una sola acción, cuando se trata de algo que esta tán relacionado entre sí. A fin de cuentas, la acción es añadir una canción con sus datos completos, no es añadir un nombre y luego añadirle la duración.
Lo de realizar un método para cada acción se refiere a acciones que no están tan relacionadas entre sí. Entonces sí conviene "modular" el código y separarlo en varios métodos.
Imagina un programa que ha de pedir datos de un alumno, comprobar que el DNI es válido, recuperar sus notas de una base de datos, calcular la nota media y por último imprimir en pantalla sus notas indicando si está aprobado o suspenso.
¿Tendría sentido hacer un método llamado: ?
Procedimiento pedirDatosALumnoComprobandoDniRecuperaNotasdeBaseDatosCalculaNotaMediaImprimeNotasEnPantallaIndicandoSiAprobadoOSuspenso();Pufff... no solo es el nombre más horrible jamás escrito para un método, sino que a parte de eso, este método hace demasiadas cosas "distintas".
Indudablemente hay que
modular, de hecho, hay cosas que solo hará si se cumplen ciertas condiciones.
Por ejemplo, si por error nos han dado un DNI que no es válido, ya no se va a buscar nada en la base de datos, ni se van a calcular medias, ni nada..
Habrá que separar en métodos:
- void pedirDatosALumno();
- boolean compruebaDNIesValido(String dni);
- float[] recuperaNotasdeBaseDatos(String dni);
- float calculaNotaMedia(float[] arrayDeNotas);
- void imprimeNotasPantalla(float[] arrayDeNotas, float notaMedia);
Este último método por ejemplo, se podría hacer en dos métodos: uno para imprimir las notas y otro para a continuacion imprimir solo la nota media e indicando si está aprobado o no.
Y sería perfectamente válido.
Pero al ser cosas que sí están más relacionadas, todo tiene que ver con las notas del alumno, seguramente el programador va a preferir hacerlo todo junto en un único método.