Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/02/2010, 11:44
xberni
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona (España)
Mensajes: 134
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Saber qué métodos pertenecen a qué clases

Antes que nada, gracias a todos por las respuestas, especialmente a enrique por su excelente explicación.

Algo sé de UML (lo que he estudiado en la universidad), aunque se me haría difícil formular una pregunta sobre UML aquí, sin poder dibujar los "cuadraditos" y las relaciones entre ellos. Como hasta ahora no he trabajado 'a la POO', pues me apaño mejor con el modelo Entidad/Relación de las bases de datos.

Me ha quedado clarísima tu explicación, y abundando en la misma quería hacer otra pregunta:

Para modelar un objeto, por ejemplo "Producto" en este caso de la tienda, y para intentar hacerlo multiidioma tengo 2 relaciones:

- producto (id, precio, etc)
- producto_descripcion (id_producto, id_idioma, descripcion_corta, descripcion_larga, etc etc)

Me pregunto cual es la manera más "correcta" desde el punto de vista OO:

1) Tener 2 clases, Producto y DescripcionProducto (con los atributos y métodos de su tabla relacionada: getId, getPrecio en la primera, y getDescripcionCorta, getDescripcionLarga, etc lara la segunda clase)
2) Tener una única clase Producto que reuna todos esos métodos en una clase, y que trabaje con las dos tablas, relacionándolas con sus joins respectivas, etc

Hace unos meses estuve estudiando Symfony (sin demasiado éxito, era un poco exigente para mi nivel iniciado), y reconozco que estoy un poco influido por la manera que tenía de mapear las relaciones a objetos (a través del ORM Propel creo recordar), generando una clase por relación, y también las clases "ConjuntoDeX" o "Peer" que comentaba en mi primer post. Es decir, para las dos relaciones que menciono anteriormente, Symfony me hubiera creado 4 clases:

- Producto
- ProductoPeer (o conjunto de productos)
- DescripcionProducto
- DescripcionProductoPeer (conjunto de...)

Gracias por anticipado