Muy buenas. Mi consulta es más bien de concepto de OO, que de php puramente, pero no he encontrado otro foro más adecuado, y ya que la aplicación que estoy montando es en php lo posteo aquí.
Tengo problemas en decidir qué métodos son propios de qué clase. Por ejemplo imaginemos una aplicación de comercio electrónico, en la que los productos se organizan de manera típica: productos, que se agrupan en categorías o tipos de productos, que estos a su vez se agrupan en tiendas. Es decir, y resumiendo mucho, tres clases: tienda - categoría - producto.
Entonces, para obtener las categorías de una tienda, a mi se me ocurre tener un método tal que así:
Código PHP:
$tienda->getCategorias();
Y para obtener los productos de una categoría, algo así:
Código PHP:
$categoria->getProductos();
En otros sitios he visto otras soluciones, como tener clases llamadas ConjuntoCategorías, y ConjuntoProductos, y tener métodos tales como:
Código PHP:
$conjuntoCategorías->getCategoriasPortienda($tienda)
Código PHP:
$conjuntoProductos->getProductosPorCategoria($categoria)
Quisiera saber si las dos soluciones son igual de buenas o no, igual de correctas desde un punto de vista OO, y sobretodo si hay alguna regla para poder efectuar estas decisiones de la manera más correcta posible.
Muchas gracias