Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Duda 3 capas (Dominio)

Estas en el tema de Duda 3 capas (Dominio) en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola tengo una duda: Supongamos que la capa Dominio tiene que entregar un resultado a la Capa de Presentación. Pero en la capa de dominio ...
  #1 (permalink)  
Antiguo 30/04/2007, 17:55
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Duda 3 capas (Dominio)

Hola tengo una duda:

Supongamos que la capa Dominio tiene que entregar un resultado a la Capa de Presentación. Pero en la capa de dominio se resuelve cierta lógica de negocio en la cual obtengo más de una variable a entregar a la Capa de presentación.

¿Cual sería la mejor forma de entregar estos resultados?
Ej con array:

Código PHP:
abstract class miDominio{

static public function 
listarAlgo(){
$resultadoDom[] = miPersistencia::obtenerAlgo1();
$resultadoDom[] = miPersistencia::obtenerAlgo2();
$resultadoDom[] = miPersistencia::obtenerAlgo3();
return 
$resultadoDom // array retornado a capa presentacion
}


Es correcto el método de guardar las variables en un array y luego retornar el array a la capa de presentación???

¿Que otra forma es mejor?

Gracias y saludos.
  #2 (permalink)  
Antiguo 30/04/2007, 18:48
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Re: Duda 3 capas (Dominio)

Estimado Pequeño Saltamontes:

¿Y tú que piensas?

Técnicamente devolver un array o un objeto es casi lo mismo, ambos serían contenedores de información que pasan de una capa a otra.

Si lo haces con un array de datos, no veo nada para excomulgarte. Podrías tener un "array asociativo" (o hash) y pasarlo a un sistema de templates (con el producto que quieras o con simple php) y sería muy práctico.

Pero ahora la parte conceptual,
si estás trabajando objetos en todo tu sistema, y quieres tratar de ser consistente y buscar que sea 100% POO, por qué en vez de pasar un array no pasas un objeto? A menos que tu sistema de templates no soporte eso (que lo dudo) sería la opción más coherente.

Si necesitas varios arrays para recorrerlos secuencialmente, puedes tener un "objeto parámetro" donde tus atributos son a su vez arrays.

Pero en resumen, no creo que ninguna opción esté mal, intenta usar objetos y si se te complica según tu contexto, usa arrays, pero ambos son las dos herramientas contenedoras de elementos que dispones.

Y si ves funciones u objetos que extraen datos de una base de datos verás que siempre están las dos opciones, un array con hash (donde cada clave corresponde con un campo) y un objeto (donde cada atributo corresponde con un campo), pero en el último caso si hay varias tuplas tendrá que haber un array para representarlas.

No hay otra, esas son las dos herramientas, array u objetos, o ambas
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #3 (permalink)  
Antiguo 01/05/2007, 01:34
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: Duda 3 capas (Dominio)

perfecto, gracias Enrique, trataré de que sea 100% POO.

Me imagino que si uso un objeto contenedor en vez de un array no hay diferencia en la recarga de la memoria del server. O si?, Cúal ocuparía más recurso del sistema?

saludos
  #4 (permalink)  
Antiguo 01/05/2007, 04:41
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Re: Duda 3 capas (Dominio)

En mi opinión es lo mismo, pero habría que ver los contextos.

Asumo que en el 99% de los casos bajo PHP no hay diferencias.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #5 (permalink)  
Antiguo 06/05/2007, 00:45
Avatar de tozanni  
Fecha de Ingreso: mayo-2007
Ubicación: Seattle, WA
Mensajes: 62
Antigüedad: 17 años
Puntos: 0
Re: Duda 3 capas (Dominio)

Si me permiten contradecirlos, creo que el ideal de 100% POO no es necesariamente óptimo en todos los contextos, especialmente en la capa de presentación. Yo soy de la idea de que no es necesario crear objetos si no se van a utilizar metodos, lo cual normalmente aplica en las consultas de Web.

Si en lugar de enviar objetos a la capa de presentacion envias arreglos asociativos, el rendering del HTML puede ser mas simple, inclusive, si lo haces asi puedes facilitar interactuar con un diseñador (le puedes hacer llegar un mock de tu array, con los datos de debe imprimir en el template, y no requiere acceso a las clases del sistema).

Los arreglos asociativos son comodos y los puedes obtener con funciones como mysql_fetch_assoc, aunque lo que si es cierto que los frameworks de acceso a datos hacen esto mucho mejor.
  #6 (permalink)  
Antiguo 06/05/2007, 00:48
Avatar de tozanni  
Fecha de Ingreso: mayo-2007
Ubicación: Seattle, WA
Mensajes: 62
Antigüedad: 17 años
Puntos: 0
Re: Duda 3 capas (Dominio)

Antes de que me regañen, me disculpo por no leer con cuidado el post intermedio, creo que no hay contradiccion . Estamos de acuerdo que los arreglos son mas practicos para imprimir en templates.
  #7 (permalink)  
Antiguo 06/05/2007, 07:24
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Re: Duda 3 capas (Dominio)

Estuve a punto
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #8 (permalink)  
Antiguo 08/05/2007, 15:00
 
Fecha de Ingreso: mayo-2007
Mensajes: 2
Antigüedad: 17 años
Puntos: 0
Re: Duda 3 capas (Dominio)

Buenas Tardes tengo una dudita, yo estoy creando un sitio en PHP en tres capas pero todo lo construyo por codigo PHP incluso la capa de presentación
ahora la duda radica en que al validar los campos en javascipt tengo una funcion que es la que envia mediante un submit hacia que pagina dede ir (la controladora en este caso), ¿Esto es una buena práctica?
Saludos,
PHPente
  #9 (permalink)  
Antiguo 08/05/2007, 16:58
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: Duda 3 capas (Dominio)

debe ir en la capa de presentación, con código html.
  #10 (permalink)  
Antiguo 23/05/2007, 15:46
 
Fecha de Ingreso: abril-2007
Mensajes: 46
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Duda 3 capas (Dominio)

Disculpen mi ignorancia, pero sobre el tema de retornar los objetos hacia la capa de presentacion esto no crea un alto acoplamiento entre las clases interfases y las listas de objetos entidades que retorno ???

Segun el patron Bajo acoplamiento las clases interfases deben abtraerse de las entidades , incluso hasta las controladoras deben abtraerse de ellas , entonces mi duda , mas bien mi incrucijada radica en :

si cuando hago la consulta a la bd creo y retorno los objetos estoy dandole acoplamiento entre la CI y la CE pero trabajo mas limpio y mas puramente orientado a objeto

si retorno los arrays o rows que capturo desde la bd entoces no le doy acoplamiento , pero ni siquiera uso la clase de mas bajo nivel en este caso la que representaria la entidad


un posible ejemplo

CI_Visor_Usuarios --------------> Muestra los usuarios con lo que retorne la CC

CC_Gestor_Usuarios ------------> retorna a la interfase los rows o los obj o ??

CE_Usuarios --------------------> se conecta a la bd y crea los objetos CE_Usuario y los retona la CC o recupera los rows y los retorna a la CC

CE_Usuario ----> se crearia con cada tupla recuperada

Si alguien me pudiera comentar sobre este tema

Saludos Orlando
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:03.