Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y Java
Descripción: Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y Java
Descripción completa
jkDescripción completa
Descripción completa
Descripción: diseño de columnas
Descripción: Diseño de Platea de Cimentación
Descripción completa
zapataDescripción completa
Full description
patrones de drenajeDescripción completa
Descripción: Preparacion de Patrones Acido
FotogrametriaDescripción completa
Trazado de Patrones CadDescripción completa
Proyecto implementando patrones de diseñoFull description
partituraDescrição completa
Full description
partitura
PATRONES DE DISEÑO Versión Borrador inicial 0.0
Fecha 10/07/17
Autor MDC
Comentarios Base inicial paso a paso en base a un resumen teórico de S!/"racle S!/"racle..
Sumario Patrones Patrones de Diseño en en Java.................................................................................................................# Java.................................................................................................................#
$%&ina 1
Patrones de Diseño en Java Como analistas ' pro&ramadores (amos desarrollando a diario nuestras habilidades para resol(er problemas usuales )ue se presentan en el desarrollo del software. $or cada problema )ue se nos presenta pensamos distintas *ormas de resol(erlo+ inclu'endo soluciones e,itosas )ue 'a hemos usado anteriormente en problemas similares. -s as )ue a ma'or e,periencia )ue ten&amos+ nuestro abanico de posibilidades para resol(er un problema crece+ pero al *inal siempre habr% una sola solución )ue meor se adapte a nuestra aplicación. Si documentamos esta solución+ podemos reutiliarla ' compartir esa in*ormación )ue hemos aprendido para resol(er de la meor manera un problema espec*ico. os patrones del diseño tratan los problemas del dise2o )ue se repiten ' )ue se presentan en situaciones particulares del dise2o+ con el *in de proponer soluciones a ellas. $or lo tanto+ los patrones de dise2o son soluciones e,itosas a problemas comunes. -,isten muchas *ormas de implementar patrones de dise2o. os detalles de las implementaciones son llamadas estrate&ias. -n este artculo+ (eremos al&unos patrones de dise2o para las aplicaciones basadas en J2EE.
Bre(e historia de los patrones de dise2o n patrón de diseño es una abstracción de una solución en un ni(el alto. os patrones solucionan problemas )ue e,isten en muchos ni(eles de abstracción. 3a' patrones )ue abarcan las distintas etapas del desarrollo4 desde el análisis hasta el diseño ' desde la arquitectura hasta la
implementación. Muchos dise2adores ' ar)uitectos de software han de*inido el t5rmino de patrón de diseño de (arias *ormas )ue corresponden al %mbito a la cual se aplican los patrones. ue&o+ se di(idió los patrones en di*erentes cate&oras de acuerdo a su uso. os dise2adores de so*t6are e,tendieron la idea de patrones de diseño al proceso de desarrollo de so*t6are. Debido a las caractersticas )ue proporcionaron los lenguajes orientados a objetos como herencia+ abstracción ' encapsulamiento8 les permitieron relacionar entidades de los len&uaes de pro&ramación a entidades del mundo real *%cilmente+ los dise2adores empearon a aplicar esas caractersticas para crear soluciones comunes ' reutiliables para problemas *recuentes )ue e,hiban patrones similares. Fue por los a2os 199:+ )ue apareció el libro ; Design Patterns: Elements of Reusable Object Oriented Sofware; escrito por los ahora *amosos Gang of Four ohnson ' >ohn Vlissides. -llos recopilaron ' documentaron #? patrones de dise2o aplicados usualmente por e,pertos dise2adores de so*t6are orientado a obetos. Desde lue&o )ue ellos no son los in(entores ni los @nicos
$%&ina #
in(olucrados+ pero ese *ue lue&o de la publicación de ese libro )ue empeó a di*undirse con m%s *uera la idea de patrones de dise2o. -l &rupo de GoF clasi*icaron los patrones en ? &randes cate&oras basadas en su PROPÓ!"O creacionales+ estructurales ' de comportamiento. •
#reacionales $atrones creacionales tratan con las * ormas de crear instancias de obetos. -l obeti(o de estos patrones es de abstraer el proceso de instanciación ' ocultar los detalles de cómo los obetos son creados o inicialiados.
•
Estructurales os patrones estructurales describen como las clases ' obetos pueden ser combinados para *ormar &randes estructuras ' proporcionar nue(as *uncionalidades. -stos obetos adicionados pueden ser incluso obetos simples u obetos compuestos.
•
#omportamiento os patrones de comportamiento nos a'udan a de*inir la comunicación e iteración entre los obetos de un sistema. -l propósito de este patrón es reducir el acoplamiento entre los obetos.
-n el se&undo ni(el+ ellos clasi*icaron los patrones en # %mbitos Clases ' obetos. -s as )ue+ tenemos tipos de patrones •
#reacional de la #lase os patrones creacionales de Clases usan la herencia como un mecanismo para lo&rar la instanciación de la Clase. $or eemplo el m5todo Factora.
#reacionales
•
#reacional del o$%eto os patrones creacionales de obetos son m%s escalables ' din%micos comparados de los patrones creacionales de Clases. $or eemplo la Factora abstracta ' el patrón Sin&leton.
•
Estructural de la #lase os patrones estructurales de Clases usan la herencia para proporcionar inter*aces m%s @tiles combinando la *uncionalidad de m@ltiples Clases. $or eemplo el patrón Adaptador Clase8.
•
Estructurales
$%&ina ?
Estructural de O$%etos os patrones estructurales de obetos crean obetos compleos a&re&ando obetos indi(iduales para construir &randes estructuras. a composición de l patrón estructural del obeto puede ser cambiado en tiempo de eecución+ el cual nos da *le,ibilidad adicional sobre los patrones estructurales de Clases. $or eemplo el Adaptador "beto8+ Facade+ Brid&e+ Composite.
•
#omportamiento de #lase os patrones de comportamiento de Clases usan la herencia para distribuir el comportamiento entre Clases. $or eemplo nterpreter.
•
#omportamiento
#omportamiento de O$%eto os patrones de comportamiento de obetos nos permite analiar los patrones de comunicación entre obetos interconectados+ como obetos incluidos en un obeto compleo. -emplo terator+ "bser(er+ Visitor.
$atrones >#-Con la aparición del J2EE+ todo un nue(o cat%lo&o de patrones de dise2o apareció. Desde )ue J2EE es una ar)uitectura por si misma )ue in(olucra otras ar)uitecturas+ inclu'endo ser(lets+ JavaServer Pages+ Enterprise Javaeans+ ' m%s+ merece su propio conunto de patrones espec*icos para di*erentes aplicaciones empresariales. De acuerdo al libro ;J!EE P"##ER$S est Practices and Design Strategies ;+ e,isten capas en la ar)uitectura >#-- •
Cliente
•
$resentación
•
!e&ocios
•
nte&ración
•
=ecurso
-l libro e,plica 1 patrones >#-- )ue est%n di(ididos en ? de las capas presentación+ ne&ocios e inte&ración.
Cat%lo&o de patrones >#-Capa de $resentación
&ecorating Filter ' !ntercepting Filter Front #ontroller' $%&ina :
n obeto )ue est% entre el cliente ' los componentes Eeb. -ste procesa las peticiones ' las respuestas. n obeto )ue acepta todos los re)uerimientos de un cliente ' los direcciona a maneadores apropiados. -l patrón Front
Front #omponent
Controller podra di(idir la *uncionalidad en # di*erentes obetos el %ront &ontroller ' el Dispatc'er. -n ese caso+ -l Front Controller acepta todos los re)uerimientos de un cliente ' realia la autenticación+ ' el Dispatcher direcciona los re)uerimientos a maneadores apropiada.
(ie) *elper
n obeto helper )ue encapsula la ló&ica de acceso a datos en bene*icio de los componentes de la presentación. $or eemplo+ los Javaeans pueden ser usados como patrón Vie6 3elper para las p%&inas >S$.
n obeto (ista )ue est% compuesto de otros obetos (ista. $or eemplo+ una p%&ina JSP )ue inclu'e otras p%&inas >S$ #omposite +ie) ' (#)* usando la directi(a include o el action include es un patrón Composite Vie6.
er+ice "o ,or-er
-s como el patrón de dise2o MVC con el Controlador actuando como Front Controller pero con una cosa importante a)u el Dispatcher el cual es parte del Front Controller8 usa Vie6 3elpers a &ran escala ' a'uda en el maneo de la (ista.
-s como el patrón de dise2o MVC con el controlador actuando como Front Controller pero con un asunto importante a)u el Dispatcher el cual es parte del Front &ispatcher (ie) Controller8 no usa Vie6 3elpers ' realia mu' poco trabao en el maneo de la (ista. -l maneo de la (ista es maneado por los mismos componentes de la Vista.
n obeto )ue reside en la capa de presentación ' en bene*icio de los otros componentes de la capa de presentación llama a m5todos remotos en los obetos de la capa de ne&ocios. n obeto serialiable para la trans*erencia de datos sobre lar red. -l uso de un bean de sesion como una *achada *acade8 para encapsular la compleidad de las interacciones entre los obetos de ne&ocio ' participantes en un *luo de trabao. -l Session Faade manea los obetos de ne&ocio ' proporciona un ser(icio de acceso uni*orme a los clientes. n bean entidad )ue es construido o es a&re&ado a otros beans de entidad.
n obeto )ue reside en la capa de ne&ocios ' crea Value (alue O$%ect "bets cuando es re)uerido. 1ssem$ler (alue ist -s un obeto )ue manea la eecución de consultas SG+ *andler' Page3 cach5 ' procesamiento del resultado. sualmente $03Page !terator' implementado como beans de sesión. Paged ist
er+ice ocator
Consiste en utiliar un obeto Ser(ice ocutor para abstraer toda la utiliación >!D ' para ocultar las compleidades de la creación del conte,to inicial+ de b@s)ueda de obetos home ->B ' recreación de obetos ->B. Varios clientes pueden reutiliar el obeto Ser(ice ocutor para reducir la compleidad del códi&o+ proporcionando un punto de control.
Capa de nte&ración
Consiste en utiliar un obeto de acceso a datos para abstraer
&ata 1ccess ' encapsular todos los accesos a la *uente de datos. -l DA" O$%ect er+ice manea la cone,ión con la *uente de datos para obtener ' 1cti+ator almacenar datos.
er+ice 1cti+ator
-nlace
$%&ina
Se utilia para recibir peticiones ' mensaes asncronos de los clientes. Cuando se recibe un mensae+ el Ser(ice Acti(ator localia e in(oca a los m5todos de los componentes de ne&ocio necesarios para cumplir la petición de *orma asncrona.