Buenas noches
Vengo aquí dudoso con una pregunta sobre este ejercicio, hay algo que no capto del enunciado y decidi realizar algo... les presento mi esquema:
Explicando el esquema: Vamos por clase. primero hablemos de la super clase
Producto.
En mi esquema tengo en la super clase Producto 4 atributos que son fecha de caducidad, numero de lote,
fecha de envasado y
pais de origen. Estos dos ultimos los agrege por la razón de que si lees el enunciado bien, puedes notar que en todas las clases piden esto: fecha de envasado y pais de origen. Nos ahorrariamos de escribir en cada clase setFechaEnvasado... setPaisOrigen... getFechaEnvasado... etc...
Con la clase
ProductoFresco, como solo requiere de fecha de envasado y pais de origen, tan solo va a heredar de la super clase
Producto y punto... al no tener atributos propios que lo identifiquen.
Viene el meollo. Modifique un poco el esquema... reemplaze la clase
ProductoFrio por la clase
ProductoCongelado.. Explico porque:
Si comparamos los atributos de
ProductoRefrigerado y
ProductoCongeladovamos a encontrar una característica similar... se trata de
temperatura recomendada. Pense en convertir a ProductoRefrigerado como una super clase, pero no tendria sentido.
Los productos refrigerados deben llevar el código del organismo de supervisión alimentaria, la fecha de envasado, la temperatura de mantenimiento recomendada y el país de origen. Los productos congelados deben llevar la fecha de envasado, el país de origen y la temperatura de mantenimiento recomendada.
ProductoRefrigerado tiene al parecer una característica especifica que es el código de organismo de supervision alimentaria.... si ProductoRefrigerado se vuelve en una super clase intermedia,
ProductoCongelado va a heredar la caracteristica especifica de ProductoRefrigerado... y por eso, cree esta clase
ProductoFrio.
¿Porque elimine la clase ProductoCongelado?
Pues, esta clase se convertiría en el mismo caso que
ProductoFresco al carecer de una
característica especifica... perooo... no elimine tal clase
ProductoFresco por no tener subclases o "hijos".
Con ProductoCongelado, ya es otra historia, se volveria una clase demas y repetida. Pensemos... ¿Que heredarian las subclases
CongeladoAire, CongeladoNitrogeno y CongeladoAgua de la clase ProductoCongelado? nada. ProductoClase tendria como atributos fecha de envasado y pais de origen... cosa que ya todas las clases estan heredando de la super clase
Producto.
Que opinan de esto chicos??? estare esperando sus correcciones y comentarios. Y si fuese el caso de que no exista ningun problema con este diagrama, inmediatamente prosigo con la codificacion!
Hice esto en paint, lo mejor que pude... D;
Saludos!