Java - diferencia de comportamiento entre los dos tipos de objetos

 
Vista:

diferencia de comportamiento entre los dos tipos de objetos

Publicado por Antonio (2 intervenciones) el 10/01/2021 01:34:51
hola mi pregunta es la siguiente;
alguien me puede explica la diferencias en el comportamiento de dos objetos se los agradecería mucho.

¿Qué métodos puede tener el objeto canción? ¿Qué métodos puede tener el objeto lista de reproducción? Cual seria la diferencia de métodos entre los dos tipos de objeto.

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.374
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

diferencia de comportamiento entre los dos tipos de objetos

Publicado por Kabuto (929 intervenciones) el 10/01/2021 03:01:34
Para decidir los métodos de una entidad, influyen dos factores:
- la naturaleza de la identidad
- lo que el programador desea implementar

Por ejemplo, la entidad "coche"

Un coche tiene unos atributos: fabricante, modelo, número bastidor, color, matricula, peso, potencia del motor...

Así que seguramente el programador querrá métodos que permitan obtener esos datos para mostrar en pantalla o donde sea.
Y quizás también para modificarlos.

Pero un "coche", por su naturaleza, además tiene ciertas funciones: arrancar/apagar motor, encender/apagar luces, abrir/cerrar puertas, acelerar, frenar, etc...

¿El programador va a querer métodos que representen/ejecuten esas funciones propias de un "coche"?
Pues depende... si está programando un juego o un simulador de conducción, pues si querrá que su clase Coche tenga esos métodos para poder representar fielmente el comportamiento de un "coche".

Pero, si en cambio lo que va a programar es el catálogo de un concesionario que vende coches, o un registro municipal de tráfico..., pues no va a necesitar que su clase Coche tenga esas funciones. Solo querrá lo imprescindible para la entrada/salida de datos de los atributos que describen un "coche", pero no su comportamiento.


Dicho esto..
¿Qué métodos puede tener una clase Canción? ¿Y una ListaReproduccion?
Pues eso, depende de su naturaleza y de lo que necesite el programador....

Una "canción", por su naturaleza, tiene ciertos atributos. Pero no tiene un "comportamiento"..., no es una entidad que "haga cosas" por ella misma.
Podemos decir que es "pasiva".
Una "canción" no se reproduce por si sola, será un "reproductor" de audio quien leerá sus datos y los transformará en sonido musical.
Una "canción" no se cataloga por si sola, será una "lista de reproducción" quien la catalogue, la ordene por nombre, o por autor, o por estilo musical.

Vamos, que una "canción" no hace nada por si misma, requiere interactuar con otras entidades.
Así que los métodos de una clase Canción básicamente serían retornar/modificar los valores de sus atributos. No va a tener métodos que representen otros comportamientos, porque por su naturaleza, pues no los tiene...

En cambio, una "lista de reproducción", sí hace cosas por ella misma, es una entidad más "activa".
Puede agregar canciones a su lista, o eliminarlas, ordenar de distintas formas según los atributos de las canciones, filtrar las canciones por autor, por género, por año, por....
Puede asociar una canción a la imagen de la portada del álbum/CD correspondiente, puede guardarse/leerse en/de disco, etc...

Una clase ListaReproduccion, a parte de métodos para retornar/modificar sus propios atributos (nombre, fecha creación, ruta en disco donde está guardada, ..) si que tendrá también otros métodos para gestionar el catálogo de objetos Canción que contiene.

Por su naturaleza, puede representar muchos comportamientos diferentes, tantos como pueda necesitar el programador. Al contrario que la clase Cancion, que como ya hemos dicho, por si sola prácticamente no hace nada..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar