Você está na página 1de 29

TALLER DE

PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Patrones de Diseo
Introduccin
Taller de
Proyectos II
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
CARRERA DE
INGENIERA
INFORMTICA
Y DE SISTEMAS
Agenda

Introduccin.

Objetivos de los patrones

Categora de patrones.

Model-View-Controller

Definir Patrones de Diseo.

!ipos de Patrones de Diseo.

Patrones de Creacin.

Patrones de "structura.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
CARRERA DE
INGENIERA
INFORMTICA
Y DE SISTEMAS
Agenda

Patrones de Co#porta#iento.

$plicacin de patrones.

%esu#en.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Introduccin

"n proyectos de softare se plantean


proble#as de diseo&

Creac!"# de objetos.

Re$t!l!%ac!"# de cdigo.

Co&$#!cac!"# entre los objetos.


TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Introduccin

"n '(()* se publica +Des!'# Patter#s, del


-ang of .our /-o.0 co#puesto por& "ric1
-a##a* %ic1ard 2el#* %alp1 3o1nson 4 3o1n
Vlisides* en el 5ue se plantean 67 patrones
diseo co#unes.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Introduccin

8no de los patrones #9s citados es el Model(


)!e(Co#troller* 5ue no es #9s 5ue un
patr"# de ar*$!tect$ra.

"l S&allta+ utili:a el Model()!e(Co#troller


para la definicin de su fra&eor+ de
desarrollo,

;os fra#ewor<s se enfocan en el d!se-o


detallado y la !&ple&e#tac!"# de $#
proyecto.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Introduccin

Cada patrn describe un pro.le&a 5ue ocurre


!#f!#!dad de /eces en nuestro e#tor#o 4
co#o co#o es su sol$c!"# al pro.le&a.

De tal #odo 5ue pode#os $t!l!%ar esta


sol$c!"# cuando lo re5uira#os en el
desarrollo sin tener 5ue volver a pensarla otra
ve:.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Objetivos de los patrones

;os patrones de diseo pretenden&

Proporcionar cat0lo'os de ele&e#tos


re$sa.les en el diseo de siste#as software.

E/!tar la re!terac!"# e# la .1s*$eda de


soluciones a proble#as 4a conocidos 4
solucionados anterior#ente.

.or#ali:ar un /oca.$lar!o co&1# entre


d!se-adores 4 desarrolladores.

Esta#dar!%ar el #odo en 5ue se reali:a el


d!se-o.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Objetivos de los patrones

;os patrones de diseo pretenden&

Fac!l!tar el apre#d!%a2e de las nuevas


generaciones de diseadores condensando
conoci#iento 4a e=istente.

$si#is#o* #o prete#de#&

I&po#er ciertas alter#at!/as de d!se-o


frente a otras.

El!&!#ar la creat!/!dad in1erente al proceso


de diseo.

Puede e=istir casos *$e #o se apl!ca el


patr"#,
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Categora de patrones

>eg?n la escala o nivel de abstraccin&

Patr"# de ar*$!tect$ra3

"=presa un es*$e&a or'a#!%at!/o


estr$ct$ral funda#ental para un s!ste&a de
softare.

Patr"# de d!se-o,

"=presa es*$e&as de estr$ct$ras de


d!se-o /o sus relaciones0 con las 5ue se
puede construir software.

Patr"# de le#'$a2e pro'ra&ac!"#,

Patrones de bajo nivel espec4f!cos para $#


le#'$a2e de pro'ra&ac!"# o entorno
concreto.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Categora de patrones

A#t!patr"# de d!se-o,

>on sol$c!o#es de d!se-o a los proble#as


5ue acarrean ciertos diseos #u4 frecuentes
basados en el a.$so de los patro#es de
d!se-o,

I#teracc!"#,

Patrones 5ue nos per#iten el d!se-o de


!#terfaces e.,
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Model-View-Controller

Est!lo de ar*$!tect$ra de softare 5ue


separa los datos* de la interfa: de usuario* 4 la
lgica de control en tres co#ponentes.

"l patrn MVC se utili:a en apl!cac!o#es e.&

;a /!sta es la p9gina 2!M; 4 el cdigo 5ue


provee de datos din9#icos a la p9gina.

"l &odelo es el >iste#a de -estin de @ase


de Datos 4 la ;gica de negocio.

"l co#trolador es el responsable de recibir


los eventos de entrada desde la vista.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Model-View-Controller

Modelo3

Represe#tac!"# especfica de la
!#for&ac!"# con la cual el s!ste&a opera.

>e li#ita a lo relat!/o de la /!sta y s$


co#trolador facilitando las presentaciones
co#plejas.

"l siste#a ta#bien opera con datos no


relativos a la presentacin* 1aciendo $so
!#te'rado de otras l"'!cas de #e'oc!o y de
datos af!#es con el siste#a #odelado.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Model-View-Controller

)!sta3

Prese#ta el &odelo en un for&ato


adec$ado para interactuar.

Co#trolador3

%esponde a e/e#tos e !#/oca ca&.!os en el


&odelo 4 probable#ente en la /!sta.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Model-View-Controller

"l usuario interact?a con la !#terfa% de $s$ar!o.

"l co#trolador rec!.e /de los objetos de la


interfa:-vista0 la #ot!f!cac!"# de la accin
solicitada por el usuario.

"l controlador 'est!o#a el e/e#to a travAs de un


gestor de eventos 56a#dler7 o call.ac+.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Model-View-Controller

"l controlador accede al &odelo de for#a a


la accin solicitada por el usuario.

;os controladores co#plejos usan un patr"#


de co&a#do 5ue e#caps$la las acc!o#es 4
si#plifica su e=tensin.

"l controlador delega a los objetos de la /!sta


la tarea de desple'ar la interfa: de usuario.

;a vista obtiene sus datos del &odelo para


'e#erar la !#terfa% 5ue se refleja los ca#bios.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Model-View-Controller

"l #odelo no debe tener conoci#iento directo


sobre la vista.

>in e#bargo* el patr"# de o.ser/ador puede


ser utili:ado para per#itir al &odelo #ot!f!car a
los !#teresados de cual5uier ca#bio.

8n o.2eto /!sta p$ede re'!strarse co# el


&odelo 4 espera a los ca#bios* pero aun as el
#odelo en s #is#o sigue sin saber nada de la
vista.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Model-View-Controller

"l controlador #o pasa o.2etos de do&!#!o


/el #odelo0 a la vista aun5ue puede dar la
orde# a la /!sta para 5ue se actualice.

$lgunas i#ple#entaciones* la /!sta #o t!e#e


acceso d!recto al &odeloB el controlador envia
los datos del #odelo a la vista.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Deinir Patrones de diseo

Conjunto de reglas 5ue describen co#o


co#pletar ciertas tareas en el desarrollo de
software.

8n patrn direcciona proble#as recurrentes


de diseo en situaciones especficas de
diseo 4 presenta una solucin para ello.

>on sol$c!o#es a pro.le&as rec$rre#tes de


d!se-o de softare *$e se e#foca# e# la
re$t!l!%ac!"# de c"d!'o. "stas soluciones 4a
1an sido probadas por los especialista en
situaciones si#ilares.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
!ipos de Patrones de Diseo

Patrones de Creacin (Creational Patterns)* son


a5uellos 5ue crean objetos por nosotros* en ve: de
tener 5ue instanciar los objetos directa#ente.

Patrones de Estructura (Structural Patterns)* nos


a4udan a co#poner grupos de objetos en estructuras
#9s grandes 4 co#plejas* co#o interfaces de
usuario o datos de contabilidad.

Patrones de Comportamiento (Behavioral


Patterns)* a4udan a definir la co#unicacin entre
objetos en su siste#a 4 c#o se controla el flujo de
infor#acin 4 control en progra#as co#plejos.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Patrones de Creacin

!odos los patrones de creacin se refieren a la #ejor


#anera de crear instancias de objetos.

Factory proporciona una clase para la creacin de


objetos de una de varias posibles subclases de una
clase base* dependiendo de los datos 5ue se
proporciona.

Abstract Factory Method proporciona un interfa: para


crear 4 retornar una de las varias fa#ilias de objetos
relacionados* a partir de la creacin de fabricas.

Builder separa la construccin de un objeto co#plejo


de su representacin* de tal for#a 5ue varias
representaciones diferentes se pueden crear
dependiendo de las necesidades del progra#a.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Patrones de Creacin

Prototype inicia con una clase iniciali:ada e


instanciada* luego la copia o clona para 1acer
nuevas instancias en ve: de crear nuevas instancias.

Singleton es una clase de la 5ue no puede 1aber


#9s de una instancia. Proporciona un solo punto de
acceso a esa instancia.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Patrones de "structura

;os patrones de estructura describen c#o las


clases 4 objetos se pueden co#binar para for#ar
estructuras #9s grandes.

Adapter se puede usar para 1acer una interfa: de


clase 5ue concuerde con otra interfa: para facilitar la
progra#acin.

Composite es una co#posicin de objetos* cada uno


puede ser un objeto si#ple o co#plejo.

Proxy es frecuente#ente un objeto si#ple 5ue to#a


el lugar de un objeto #9s co#plejo 5ue se puede
invocar despuAs* por eje#plo cuando el progra#a se
ejecuta en un entorno de red.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Patrones de "structura

Flyweight es un patrn para co#partir objetos donde


cada instancia no contiene su propio estado* pero lo
al#acena e=terna#ente.

Facade se usa para 5ue una sola clase represente


todo un subsiste#a.

Bridge separa la interfa: de un objeto de su


i#ple#entacin* de tal for#a 5ue se pueden variar
por separado.

Decorator se puede usar para agregar


responsabilidades a los objetos din9#ica#ente.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Patrones de Co#porta#iento

>on patrones 5ue se enfocan especfica#ente en la


co#unicacin entre objetos.

Observer define la #anera en 5ue un n?#ero de


clases son notificadas de un ca#bio.

Mediator define c#o se puede si#plificar la


co#unicacin entre clases usando otra clase 5ue
1aga 5ue todas las clases sepan de las de#9s.

Chain o !esponsability* per#ite un desacopla#iento


entre las clases pasando un re5ueri#iento entre
clases 1asta 5ue se recono:ca.

"emplate proporciona una definicin abstracta de un


algorit#o.

#nterpreter proporciona una definicin de c#o incluir


ele#entos del lenguaje en un progra#a e interprete.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Patrones de Co#porta#iento

Strategy encapsula varios algorit#os dentro de una


clase 4 elije en for#a din9#ica.

$isitor Per#ite definir nuevas operaciones sobre una


jerar5ua de clases sin #odificar las clases sobre las
5ue opera.

State proporciona un ca#bio de co#porta#iento de


la clase cuando ca#bia el estado de la variables de
la instancia de una clase.

Command proporciona una #anera si#ple de


separar la ejecucin de un co#ando del entorno de
interfa: 5ue lo produce.

#terator for#ali:a la #anera 5ue nos #ove#os a


travAs de una lista de objetos dentro de una clase
co#puesta.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Patrn de Creacin$ %ingleton

"l eje#plo define una clase final* crea una


?nica instancia de s #is#a con visibilidad a
todo nivel de acopla#iento.
final class Coche{
public static void main(String args[]) {
try {
// Crea un sencillo input stream en archivo
FileInputStream fis ne! FileInputStream("somefile#dat$)%
// &ee todo el contenido del archivo
!hile(fis#available() ' () {
System#out#println((char)fis#read())%
)
)
catch(*+ception e) {
System#err#println("*rror al leer el archivo, "-e)%
)
)
)
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
Aplicacin de patrones

Patro#es de !#terfaces de $s$ar!oB definir las


#ejores for#as de construir interfaces 1o#bre-
#95uina /2CI* -8I0.

Patro#es para la co#str$cc!"# de s!ste&as


e&presar!ales* definir infraestructuras software para
#a=i#i:ar la escalabilidad o el #anteni#iento del
siste#a.

Patro#es para la !#te'rac!"# de s!ste&as 5EAI78


para la interco#unicacin 4 coordinacin de siste#as
1eterogAneos.

Patro#es de or+flo* definicin* construccin e


integracin de siste#as abstractos de gestin de
flujos de trabajo 4 procesos con siste#as
e#presariales.
TALLER DE
PROYECTOS II

CARRERA DE
INGENIERA
DE SISTEMAS
&esu#en

;os patrones describen soluciones probadas a


proble#as de diseo recurrentes* 1aciendo
especial Anfasis en el conte=to 4 fuer:as 5ue
rodean al proble#a* 4 las consecuencias e
i#pacto de la solucin.

;os patrones de creacin se enfocan en la


#ejor #anera de crear objetos.

;os patrones de estructura se concentran en


la co#posicin de objetos.

;os patrones de co#porta#iento se enfocan


en la co#unicacin entre objetos.

Você também pode gostar