Foros del Web » Programación para mayores de 30 ;) » Programación General »

Duda sobre el patrón Fachada (Facade)

Estas en el tema de Duda sobre el patrón Fachada (Facade) en el foro de Programación General en Foros del Web. Hola Estoy intentando hacer un diseño en capas e intentando utilizar para ello el patrón fachada (facade) para minimizar el acoplamiento entre dichas capas. El ...
  #1 (permalink)  
Antiguo 26/09/2005, 02:39
Avatar de javimartinez  
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 21 años, 7 meses
Puntos: 1
Duda sobre el patrón Fachada (Facade)

Hola

Estoy intentando hacer un diseño en capas e intentando utilizar para ello el patrón fachada (facade) para minimizar el acoplamiento entre dichas capas. El problema me viene en el número de métodos que tendría que tener la fachada de cada una de las capas.

Así, por ejemplo, el interfaz gráfico, como es normal, utilizará los métodos de la capa inferior, sin embargo, si la interfaz es muy grande el número de métodos crece mucho. Este problema se agraba si se desea poner otra fachada en la capa de acceso de a la base de datos, a la cual acceden todos los componentes.

¿Es este aumento en el número de métodos de una fachada un problema realmente (o cuando llega a serlo)? ¿Conoceis alguna solución a ello para seguir manteniendo el bajo acoplamiento entre capas?

Gracias y un saludo
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse
  #2 (permalink)  
Antiguo 26/09/2005, 07:13
 
Fecha de Ingreso: septiembre-2005
Mensajes: 110
Antigüedad: 19 años, 2 meses
Puntos: 0
Hola,

Existen 2 tipos de controladores:
1. Fachada. Que representa a todo el sistema o a un subsistema
2. Controlador de caso de uso. Que solo controla las actividades respectivos a un caso de uso.

Pero lo interesante es como se aplica. Una fachada debe dar acceso a funcionalidad especifica, no debe tener funciones de apoyo o cosas asi, esos van en otras clases. Las fachadas son puntos de entrada.

Existe una discusion de capas aqui http://groups.msn.com/ISWOO/arquitec...40244238649425

Saludos
  #3 (permalink)  
Antiguo 27/09/2005, 00:34
Avatar de javimartinez  
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 21 años, 7 meses
Puntos: 1
Gracias por contestar cbwarz

El problema que tengo no es decidir que capas utilizar, si no sobre la utilización del patrón fachada y el número de métodos que este contiene. Es decir, si tenemos objeto fachada que únicamente se encarga de redireccionar la petición que le llega al objeto correspondiente, ¿cuantos métodos se recomienda que este contenga como máximo? ¿puede ser un problema que tenga muchos métodos?

Un saludo
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse
  #4 (permalink)  
Antiguo 27/09/2005, 06:44
 
Fecha de Ingreso: septiembre-2005
Mensajes: 110
Antigüedad: 19 años, 2 meses
Puntos: 0
Checa mi respuesta anterior, alli te digo que clases de controladores puedes usar. Si el sistema es muy grande usa controladores de caso de uso.

No es un problema que tenga muchos metodos siempre y cuando dichos metodos sean de funcionalidad y no de apoyo. Las fachadas son punto de entrada, no se espera que tengan lógica de negocio.
  #5 (permalink)  
Antiguo 28/09/2005, 02:34
Avatar de javimartinez  
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 21 años, 7 meses
Puntos: 1
Hola cbwarz

Ya vi el link q pusiste antes de contestar la primera vez (y algún otro post del foro :) ). Lo que pasa es que el problema que tengo no es decidir si utilizar controladores de casos de uso o fachada, eso ya está decidido a fachada. Debido al gran número de casos de uso necesito utilizar una facha para no manejar desde el interfaz una gran cantidad de los controladores (eso me aumentaría tremendamente el acoplamiento entre módulos. Además, por el dominio en el que me muevo, tendría q tener creados en todo momento todos los controladores).

La duda que tenía es simplemente saber si da problemas tener una única fachada con muchos métodos. La solución a ello, teniendo en cuenta el dominio, ya la tengo más o menos pensada, pero es peor que tener una única fachada. De ahí que me surja la duda de hasta cuantos métodos podría tener una fachada, si daría problemas, etc. Por fachada entiendo simplemente una clase (que implementa una interfaz) que redirija. Es decir, el sabe quien sabe hacer cada cosa, pero nada más.

Gracias por la ayuda y un saludo :)
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse
  #6 (permalink)  
Antiguo 28/09/2005, 07:13
 
Fecha de Ingreso: septiembre-2005
Mensajes: 110
Antigüedad: 19 años, 2 meses
Puntos: 0
umm, ahora que mencionas que es un sistema grande, te aconsejo no usar una fachada para todo el sistema. Usa controladores por caso de uso, de esta manera cada caso de uso tiene su punto de entrada y ademas es mas facil distribuir el trabajo en multiples desarrolladores. Teniendo cada caso de uso su fachada puedes hacer subsistemas reutilizables.

Lo que dices de lo que has entendido de una fachada es correcto.

El link que te pase de las capas era nada mas por si te servia en cuanto a capas.

Saludos
  #7 (permalink)  
Antiguo 18/01/2010, 13:13
 
Fecha de Ingreso: diciembre-2005
Mensajes: 2
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Duda sobre el patrón Fachada (Facade)

Cita:
Iniciado por cbwarz Ver Mensaje
umm, ahora que mencionas que es un sistema grande, te aconsejo no usar una fachada para todo el sistema. Usa controladores por caso de uso, de esta manera cada caso de uso tiene su punto de entrada y ademas es mas facil distribuir el trabajo en multiples desarrolladores. Teniendo cada caso de uso su fachada puedes hacer subsistemas reutilizables
Cuando decis usar controladores te referis a tener una fachada por cada caso uso ?
O ej: una fachada para lo que tenga que ver con usuarios, otra para lo relacionado a los productos, ect, etc..
Ej:
UsuariosFacada::getAll();
ProductosFacada::getAll();

Saludos!
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 14:32.