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

Patrón Facade en Arquitectura en capas

Estas en el tema de Patrón Facade en Arquitectura en capas en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estuve investigando(Leyendo) sobre el uso del patrón Facade en la arquitectura en capas, se puede usar como inermediario entre la capa de Presentacion y Negocio ...
  #1 (permalink)  
Antiguo 25/05/2008, 21:04
 
Fecha de Ingreso: marzo-2008
Mensajes: 45
Antigüedad: 16 años, 1 mes
Puntos: 0
Patrón Facade en Arquitectura en capas

Estuve investigando(Leyendo) sobre el uso del patrón Facade en la arquitectura en capas, se puede usar como inermediario entre la capa de Presentacion y Negocio y entre Negocio y Acceso a Dato, ahora bien, podria ser esto dos capas nuevas?

ejemplo:

Presentacion
FachadaNegocio
Negocio
FachadaAccesoDato
AccesoDato

gracias.
  #2 (permalink)  
Antiguo 26/05/2008, 01:40
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Patrón Facade en Arquitectura en capas

No lo considero capa nueva, ya que para el que llama a la fachada no sabe que es una fachada. Para la presentacion, la fachada es negocio, le da lo mismo que solo sea un interfaz a 8 clases.
  #3 (permalink)  
Antiguo 26/05/2008, 07:32
 
Fecha de Ingreso: marzo-2008
Mensajes: 45
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Patrón Facade en Arquitectura en capas

Darkj
bueno, y como se puede incluir una capa intermedia entre presentacion y negocio.. ke llevaria esa capa ?

gracias
  #4 (permalink)  
Antiguo 26/05/2008, 07:49
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Patrón Facade en Arquitectura en capas

Buen, ayer de noche tarde estaba escribiendo una explicación ideal para un libro, pero perdí conexión con forosdelweb.com y perdí todo... así que ahora va la versión más resumida y hecha directamente desde Gmail (por las dudas)

Una fachada es eso, una fachada, un "representante" para acceder al paquete / capa.

Aclaración: una capa se representa como un paquete, pero un paquete no necesariamente es una capa (un paquete puede estar compuesto por muchos paquetes).

Para desacoplar y simplificar el acceso al paquete que ofrece servicios se puede aplicar el patrón Facade.

Escenario 1:
de la capa Presentación se accede directamente a todas las clases que se requieran, una por una, por consiguiente si lo representamos con UML se vería internamente como muchas flechas del exterior que apuntan a muchas clases del paquete Negocio.

Código PHP:
// Desde el paquete Presentación

Usuarios::getAll();
Facturas::getFromId);
Proveedores::getFromIdFactura); 
etc.

Escenario 2: para simplificar la operativa, se crea una fachada / representante que recibe todas las peticiones del exterior, "no deja entrar a nadie", y les devuelve todos los datos que requieran, cambiando el diseño como muchas flechas del exterior que apuntan a una sola clase fachada del paquete / capa Negocio.

Código PHP:
// Desde el paquete Presentación

NegocioFachada::getUsuarios();
NegocioFachada::getFacturaFormId);
NegocioFachada::getProveedorFromFactura); 
De esta forma, cada capa se comunica con la otra siempre a través de su fachada, y solo internamente la fachada interactúa con las clases concretas (es más, dentro de la fachada tendrás el mismo código que en el Escenario 1).

Nota: se pueden hacer variaciones, como por ejemplo, en vez de una Fachada hacer una Fábrica (o Fachada Fábrica) donde en algunos casos retorna la instancia de la clase que necesita, sin llegar a tener una dependencia directa contra la clase, solo contra la Fábrica.

Te recomiendo leer sobre "bajo acoplamiento, alta cohesión".
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
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 20:59.