Академический Документы
Профессиональный Документы
Культура Документы
TECNOLOGA DE LA PROGRAMACIN II
UNIVERSIDAD NACIONAL DE
TRUJILLO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA DE
SISTEMAS
PATRN DE DISEO FACADE E
GRUPO N 6ITERATOR
DELGADO
CHAO,
(Coordinador)
IPARRAGUIRRE SIXE, ABNER
MONTERO MACO, GUSTAVO
ROJAS ALARCON, JORDAN
ROJAS LPEZ, JOS YERSON
CRISTHIAN
CURSO:
TECNOLOGA DE LA PROGRAMCIN II
DOCENTE:
Mg. VIDAL MELGAREJO ZORAIDA YANET
CICLO:
V
1|Pgina
TECNOLOGA DE LA PROGRAMACIN II
2|Pgina
TECNOLOGA DE LA PROGRAMACIN II
INTRODUCCIN
3|Pgina
TECNOLOGA DE LA PROGRAMACIN II
TECNOLOGA DE LA PROGRAMACIN II
1.1. DEFINICIN
El patrn de diseo facade o fachada nos permite simplificar el
interface de comunicacin entre dos objetos X y Z de tal forma que
para el objeto X sea ms sencillo interactuar con el objeto Z. De esta
manera el cliente solo se conecta con una interface sencilla, mientras
que la interface sencilla se conecta a su vez a otras interfaces ms
complejas. Proporciona una interfaz unificada para un conjunto de
interfaces de un sistema. Define una interfaz de alto nivel que hace
que el subsistema sea ms fcil de usar.
El Patrn Fachada se caracteriza por ser una puerta de entrada hacia
otro subsistema. Provee una interfaz unificada y sencilla que haga de
intermediaria entre un cliente y una interfaz o grupo de interfaces
ms complejas. Es un patrn de diseo tipo estructural perteneciente
a la pandilla de los 4. El patrn fachada esconde toda la complejidad
de un subsistema y sirve como puerta de acceso.
1.2. OBJETIVO
El objetivo del patrn Facade es agrupar las interfaces de un conjunto
de objetos en una interfaz unificada volviendo a este conjunto ms
fcil de usar por parte de un cliente.
El patrn Facade encapsula la interfaz de cada objeto considerada
como interfaz de bajo nivel en una interfaz nica de nivel ms
elevado. La construccin de la interfaz unificada puede necesitar
implementar mtodos destinados a componer las interfaces de bajo
nivel.
1.3. MOTIVACIN
Por lo general, dentro de un entorno de programacin, la mayora de
los clientes de un compilador no suelen preocuparse de detalles como
el anlisis sintctico y la generacin de cdigo.
Para proporcionar una interfaz de ms alto nivel que asle a estas
clases de los clientes del subsistema de compilacin tambin incluye
una clase compilador. Esta clase define una interfaz uniforme para la
funcionalidad del compilador.
Reduce la complejidad.
Minimizar la comunicacin y dependencias entre subsistemas.
Introducir un objeto fachada que proporcione una interfaz nica
y simplificada para los servicios del sistema.
La clase compilador funciona como una fachada:
Ofrece a los clientes una interfaz nica y simple
5|Pgina
TECNOLOGA DE LA PROGRAMACIN II
6|Pgina
TECNOLOGA DE LA PROGRAMACIN II
1.4.2.
DIAGRAMA DE CLASES
7|Pgina
1.4.3.
TECNOLOGA DE LA PROGRAMACIN II
PARTICIPANTES
TECNOLOGA DE LA PROGRAMACIN II
COLABORACIONES
9|Pgina
1.4.5.
TECNOLOGA DE LA PROGRAMACIN II
APLICACIN
tareas
en
TECNOLOGA DE LA PROGRAMACIN II
VENTAJAS Y DESVENTAJAS
VENTAJAS
La principal ventaja del patrn fachada consiste en que
para modificar las clases de los subsistemas, slo hay que
realizar cambios en la interfaz/fachada, y los clientes
pueden permanecer ajenos a ello. Adems, y como se
mencion anteriormente, los clientes no necesitan
conocer las clases que hay tras dicha interfaz.
DESVENTAJAS
Como inconveniente, si se considera el caso de que varios
clientes necesiten acceder a subconjuntos diferentes de la
funcionalidad que provee el sistema, podran acabar
usando slo una pequea parte de la fachada, por lo que
sera conveniente utilizar varias fachadas ms especficas
en lugar de una nica global.
1.4.7.
PATRONES RELACIONADOS
11 | P g i n a
1.4.8.
TECNOLOGA DE LA PROGRAMACIN II
EJEMPLO EN JAVA
El componente Catlogo.
El componente GestinDocumento.
El componente RecogidaVehculo.
TECNOLOGA DE LA PROGRAMACIN II
13 | P g i n a
TECNOLOGA DE LA PROGRAMACIN II
14 | P g i n a
TECNOLOGA DE LA PROGRAMACIN II
15 | P g i n a
TECNOLOGA DE LA PROGRAMACIN II
16 | P g i n a
TECNOLOGA DE LA PROGRAMACIN II
Por ltimo, un cliente del servicio web puede escribirse en Java como
sigue:
17 | P g i n a
TECNOLOGA DE LA PROGRAMACIN II
TECNOLOGA DE LA PROGRAMACIN II
2.1. DEFINICIN
Es un mecanismo de acceso a los elementos que constituyen una
estructura de datos para la utilizacin de estos sin exponer su
estructura interna.
El patrn Iterator proporciona un acceso secuencial a una coleccin
de objetos a los clientes sin que stos tengan que preocuparse de la
implementacin de esta coleccin.
2.2. OBJETIVO
Proporcionar una forma de acceder a los elementos de una
coleccin de objetos de manera secuencial sin revelar su
representacin interna.
Define una interfaz que declara mtodos que permitan acceder
secuencialmente a la coleccin.
2.3. MOTIVACIN
El patrn surge del deseo de acceder a los elementos de un
contenedor de objetos (por ejemplo, una lista) sin exponer su
representacin interna. Adems, es posible que se necesite ms
de una forma de recorrer la estructura siendo para ello
necesario crear modificaciones en la clase.
La solucin que propone el patrn es aadir mtodos que
permitan recorrer la estructura sin referenciar explcitamente su
representacin. La responsabilidad del recorrido se traslada a
un objeto iterador.
El problema de introducir este objeto iterador reside en que los
clientes necesitan conocer la estructura para crear el iterador
apropiado
19 | P g i n a
TECNOLOGA DE LA PROGRAMACIN II
20 | P g i n a
TECNOLOGA DE LA PROGRAMACIN II
2.4. ESTRUCTURA
2.4.1. DIAGRAMA DE CLASES
21 | P g i n a
TECNOLOGA DE LA PROGRAMACIN II
2.4.2. PARTICIPANTES
Los participantes del patrn son los siguientes:
Iterador es la clase abstracta que implementa la asociacin del
iterador con los elementos de la coleccin as como los
mtodos. Es genrica y est parametrizada mediante el tipo
TElemento.
IteradorConcreto (IteradorVehculo) es una subclase concreta
de Iterador que relaciona TElemento con ElementoConcreto.
Coleccin (Catlogo) es la clase abstracta que implementa la
asociacin de la coleccin con los elementos y el mtodo
creaIterador.
ColeccinConcreta (CatlogoVehculo) es una subclase
concreta de Coleccin que relaciona TElemento con
ElementoConcreto y TIterador con IteradorConcreto.
Elemento es la clase abstracta de los elementos de la
coleccin.
ElementoConcreto (Vehculo) es una subclase concreta de
Elemento utilizada por IteradorConcreto y ColeccinConcreta.
2.4.3. COLABORACIONES
El iterador guarda en memoria el objeto en curso en la coleccin. Es
capaz de calcular el objeto siguiente del recorrido.
2.4.4. APLICACIONES
El patrn se utiliza en los casos siguientes:
Es necesario realizar un recorrido de acceso al contenido de una
coleccin sin acceder a la representacin interna de esta
coleccin.
Debe ser posible gestionar varios recorridos de forma
simultnea.
2.4.5. CONSECUENCIAS
Los iteradores simplifican la interfaz de las colecciones, ya que
la interfaz de los recorridos se encuentra en los iteradores y no
en la clase que corresponde a la estructura en cuestin.
Permite variaciones en el recorrido de una coleccin.
Para cambiar el algoritmo de recorrido basta cambiar la
instancia de Iterator concreta
Nuevos recorridos mediante nuevas subclases de Iterator
Se puede tener ms de un recorrido en progreso al mismo
tiempo por cada coleccin
22 | P g i n a
TECNOLOGA DE LA PROGRAMACIN II
2.4.6. EJEMPLO
TECNOLOGA DE LA PROGRAMACIN II
24 | P g i n a
TECNOLOGA DE LA PROGRAMACIN II
TECNOLOGA DE LA PROGRAMACIN II
indice = 0;
int tamao = contenido.size();
while ((indice < tamao) && (!contenido.get(indice)
.palabraClaveValida(palabraClaveConsulta)))
indice++;
TECNOLOGA DE LA PROGRAMACIN II
return resultado;
vehiculo = iterador.item();
while (vehiculo != null)
{
vehiculo.visualiza();
iterador.siguiente();
vehiculo
iterador.item();
}
=
new
iterador =
27 | P g i n a
TECNOLOGA DE LA PROGRAMACIN II
28 | P g i n a
TECNOLOGA DE LA PROGRAMACIN II
BIBLIOGRAFA
29 | P g i n a