Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/02/2004, 17:59
Avatar de Webstudio
Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Que hago con esta Vista? (un poco de POO)

Que tal gente. Estoy aqui haciendole una consulta a la gente que esté un poco más acostumbrada a realizar desarrollos orientados a objetos. Resulta que para un cliente, he desarrollado un mini-Framework basado en algunos patrones de diseño comunes: FrontController, Command, MVC, etc.
El caso es que estoy trabado en una parte y quisiera que me dieran sus opiniones. El flujo de trabajo es asi...

Todos los pedidos se atrapan en la misma url, por ejemplo, index.php. Este archivo, instancia un FrontController, que se encargará de determinar, que Acción se debe ejecutar. La acción, no es más que un objeto de la SubClase Accion, que recibe los datos de los parámetros y trabaja con ellos, determinando que objetos Modelo instanciar y que Vista se debe utilizar para presentar los datos.

- FrontController recibe los parámetros del usuario ( en un objeto wrapper que llamaremos Request ).
- FrontController instancia un objeto de la clase Accion ( pasandole Request como parámetro ).
- Se ejecuta el método "ejecutar" del objeto Accion con la lógica de 1 comando en particular.
- Este comando, instancia y utiliza los objetos de Dominio para realizar la tarea que se supone que tiene que hacer ( contabilizar un voto, mostrar un Thread, lo que sea ).

Mi problema llega en el momento de trabajar con la devolución al navegador. Debería el objeto Acción, instanciar un objeto Vista (View) y retornarlo al FrontController? Debería el objeto acción retornar solo el nombre de la vista a utilizar, y que el FrontController instancie la Vista necesaria ( a través de un Factory ) ?.
Qué es lo que a criterio de Uds. sería mejor para mantener una buena separación de capas?

Cómo lo tenía pensado hasta hace poco, era que el Objeto Acción, luego de instanciar los objetos modelos necesarios y de incluirlos en un objeto "Response", instanciara el objeto Vista necesario, le pasara el objeto Response como parámetro y lo retorne al FrontController. Y ya...

Pero luego pensé que posiblemente, una mejor separación se podría lograr al hacer que el Objeto Acción ( que en definitiva es un Controlador ) , retorne el nombre de la Vista a utilizar, y que el FrontController decida que tipo de Vista instanciar ( HTML, XML, WAP, lo que sea) basado en el nombre que la acción le devuelve.

Bueno... ya no sigo por si alguno está más que mareado, tan solo espero que me hayan podido entender y que me den sus opiniones, si alguno cree que necesita algo más de introducción al contexto del problema, me avisa y sigo.

un saludos para todos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com