Sunteți pe pagina 1din 44

09/02/2012

PatronesdeArquitectura

MBAPilarStronguilLeturia

Agenda
Introduccin
Patronesdearquitectura

1
09/02/2012

Introduccin

Introduccin
Culeslaconstanteeneldesarrollodel
ft
software? ?
Noimportadondesetrabaje
Noimportaquseestconstruyendo
Noimportalaexperienciaenelusodeun
g
lenguaje
LanicaconstanteeselCAMBIO

2
09/02/2012

Quesunpatrn?
DeacuerdoaMartinFowler
Un"patrn"sedefinecomounaideaqueha
sidotilenuncontextoparticularyque
probablementeseatilenotros
Algoestrictamentedescritoycomnmente
disponible.

Patrndearquitectura
Representanelmsaltoniveldepatrones.
Explicanlaestructurafundamentaldelsistema.
Lospatronesdearquitecturaofrecen
solucionesbienestablecidasaproblemasde
arquitectura.
Proveedescripcionesdeelementosylostipos
derelacionesentreellosenconjuntoconlas
es cc o es de c o puede us se
restriccionesdecmopuedenusarse.
Expresaunesquemaestructuralqueconsiste
desubsistemas,susresponsabilidadese
interrelaciones.
Lospatronesdearquitecturasondeunaescala
mayoralosdediseo.

3
09/02/2012

Patrndediseo
Esunasolucingeneralreusableparaun
problemafrecuenteeneldiseode
ft
software.
Esunadescripcinoplantilladecomoresolver
unproblemaquepuedeserusadaendiferentes
situaciones.
Noesundiseofinalquepuedaser
transformadoencdigo,mssiundiseo
generalquepuedeseradaptadoaunarealidad
concreta.
PatronesdediseoOOtpicamentemuestran
relacioneseinteraccionesentreclasesu
objetos.

Patrndediseo
Unpatrndediseoproporcionaun
esquemapararefinarlossubsistemaso
q p
componentesysusrelacionesenun
software.
Lospatronesseaplicandurantela
elaboracindelosdiagramasde
,
interaccin,aldisearlacolaboracinentre
objetos.

4
09/02/2012

Contenidodeunpatrn
Tienequesersignificativoyfcildememorizar.
Nombre Tpicamenteconstadeunasolapalabraodeuna
frasecorta.
Esunadescripcindelproblema,indicandola
intencindeaplicarelpatrnylosobjetivosa
Problema alcanzarenrelacinalcontexto.
Normalmenteseenunciacomounapregunta.
Sonlasprecondicionessobrelasqueelpatrnes
Contexto
aplicable.
aplicable
Unadescripcindelasprincipalesinfluenciasy
restriccionesycomoellasinteractanocausan
Influencias conflicto.
Debeexplicartambinlaclasedeconcesionesque
debenconsiderarse.

Contenidodeunpatrn
Unadescripcinusandountextoy/ogrficosdecomo
alcanzarlosobjetivos.Debeidentificartantolaestructura
Solucin estticacomoladinmica.
Unasolucincompletaincluyeguasdecomo
implementarlasolucin.
Sonlaspostcondicionesdespusqueelpatrnhasido
Contexto aplicado.
resultante Describequeinfluenciasyrestriccioneshansidoresueltas
yculesno.
Muestralarelacinentreelpatrndescritoyotros.
Patrones
Losotrospuedenserpatronespredecesores,sucesores,
relacionados codependientes oalternativos.

Usos
Aplicacionesconocidasdelpatrnensistemasexistentes.
conocidos

5
09/02/2012

Contenidodeunpatrn
Tambinsepuedeadicionarala
d t i
documentacin:
Ejemplosdeimplementacin.
Racionalidad.
Lossustentostericosquejustificanelpatrn.

Patronesvs.Framework
Unframeworkesunacoleccinorganizada
declasesqueconstituyenundiseo
reutilizableparauntipoespecficode
software.
Esnecesarioadaptarloaunaaplicacinen
particular.
Establecelaarquitecturadelaaplicacin.
Diferenciasconpatrones:
Dif i t
Lospatronessonmsabstractosquelos
frameworks.
Lospatronessonmenosespecializados.

6
09/02/2012

Porquusarpatrones?
Losdiseadoresexpertosmanejanpatrones
t d l l b i
recurrentesdeclasesycolaboraciones
tilesantedeterminadosproblemas.
Lospatronesresuelvenproblemas
concretosycreandiseosOOms
g , y
elegantes,flexiblesyreutilizables.

Reutilizacin de la experiencia

Porquusarpatrones?
Paraproducirsoftwarefcildecambiar.
EstablecerproblemasParejaSolucin.
Ayudaraespecificarinterfaces.
Reutilizarcdigo.
Usardocumentacinestndar.
Permitirquelassolucionesseandescritas
demaneraconcisa,comounacombinacin
depatrones.

7
09/02/2012

PatronesdeArquitectura

Arquitecturadesoftwarey
patrones
Unaarquitecturaorientadaaobjetosbien
t t d tll d t L
estructuradaestllenadepatrones.La
calidaddeunsistemaorientadoaobjetosse
mideporlaatencinquelosdiseadores
hanprestadoalascolaboracionesentresus
objetos.
Lospatronesconducenaarquitecturas
mspequeas,mssimplesyms
comprensibles
G.Booch

8
09/02/2012

Clasificacindelospatronesde
Arquitectura
Sistemas Sistemas
Interactivos Adaptables
ModelView Microkernel
Controller Reflection
Presentation Estructurales
AbstractionControl
Layers
Sistemas p
PipesandFilters
Distribuidos
Blackboard
Broker

PatronesdeArquitectura
Interactivos

9
09/02/2012

PatronesInteractivos
Estospatronesestructuranlas
t ti d i t i h b
caractersticasdeinteraccinhombre
mquina.
Suobjetivoesresaltarlausabilidaddela
aplicacin.

Patronesdeinteraccin
Patrn Problema
Cmosepuedemodularizar la
funcionalidaddelainterfazde
ModeloVista usuariodeunaaplicacinde
Control maneratalquepuedanser
modificadaslaspartes
individuales?
Presentacin
Cmoseconstruirunsistema
Abstraccin
conmltiplespatronesMVC?
Control

10
09/02/2012

Patronesdeinteraccin
Patrn Problema
Comohacermejorlaestructurade
controlparaaplicacionesWebsimples
Controlador
talquesealcancereusabilidady
depginas flexibilidadalmismotiempoqueseevita
duplicacindelcdigo?
Comohacermejorlaestructurade
controlparaaplicacionesWeb
Front moderadamentecomplejastalquese
Controller alcancereusabilidadyflexibilidadal
mismotiempoqueseevitaduplicacin
delcdigo?

PATRONMODELOVISTA
CONTROLADOR(MVC)

11
09/02/2012

PatrnModeloVistaControl
(MVC)
Nombre ModeloVistaControlador
Contexto Aplicacionesinteractivas conunainterfaz
hombremquinaflexible.
Problema Interfacessujetasacambios deformay
contenidos
Solucin Patrn MVC,endonde:
SedesacoplaelModelodelasVistas.
Vistasycontroladoresjuntoscomprendenla
interfazdeusuario.
Unmecanismodepropagacindecambio
aseguralaconsistenciaentrelainterfazde
usuarioyelmodelo.

PatrnModeloVistaControl
(MVC)
Elpatrndivideunaaplicacininteractivaen
trescomponentes

Modelo Tienelafuncionalidadydatos
delncleo.
Vista Muestrainformacindel
usuario.
Controlador Manejalasentradasdelos
usuarios.

12
09/02/2012

PatrnModeloVistaControl
(MVC)

Relacionesdelmodelo
Laslneasslidasindicanunaasociacindirecta,ylas
punteadasunaindirecta(porejemplo,usandounpatrn
PublicarSubscribir).

PatrnMVC
CoreData
Amarillo 43% Hojadeclculo
Rojo 39%
Amarillo 43%
A l
Azul 06%
6%
Verde 10% Rojo 39%
Otros 02% Azul 6%
Verde 10%
PieChart Otros 2%
BarChart 100%

Participacin

13
09/02/2012

PatrnMVC
Elmodelonotificaatodaslasvistaslos
bi id l d t
cambiosacaecidosenlosdatos.
Elmodeloactualizalainformacin
mostradaenlasvistas.
Esposibleintegrarnuevasformasde
mostrarlosdatos.
mostrarlosdatos

PatrnMVC:Estructura
Unaimplementacinorientadaaobjetos,defineunaclase
separadaparacadacomponente.
E C i l b d
EnC++esnecesariouncuatrocomponente:elobservador

14
09/02/2012

PatrnMVC:Estructura
Elcomponentemodelocontienelafuncionalidad
coredelaaplicacin

Clase:Modelo Colaborador
Vista
Responsabilidades: Controlador
Proporcionalafuncionalidad
principaldelaaplicacin
Registralasvistasdependientesy
suscontroladores.
Notificaaloscomponentes
dependientesacercadelos
cambios.

PatrnMVC:Estructura
Elcomponentevistapresentalainformacinal
usuario.

Clase:Vista Colaborador
Controlador
Responsabilidades: Modelo
Creareinicializarsu
controladorasociado.
Muestrainformacinal
usuario.
Implementaelprocedimiento
deupdate.
RecibedatosdesdeelModelo.

15
09/02/2012

PatrnMVC:Estructura
Elcomponentecontroladoraceptalospedidosde
losusuario.

Clase:Controlador Colaborador
Vista
Responsabilidades: Modelo
Aceptalosinputsdelusuarioa
maneradeeventos.
Traduceeventosapedidosde
serviciosparaelmodeloo
muestrapedidosparalavista.
Implementaelprocedimiento
deupdate deserrequerido.

PatrnMVC:Dinmica
EscenarioI:Muestracomouninputdelusuarioque
ocasionancambiosenelmodelo,disparaelmecanismode
propagacindelcambio.

16
09/02/2012

PatrnMVC:Dinmica
EscenarioII:Muestracomoinicializanloscomponentesdel
MVC.Usualmenteestecdigoeslocalizadofueradelatrada
(enunprogramaprincipal,porejemplo).

PatrnMVC:Pasosparasu
Implementacin
1. Separarlainteraccinhombremquinadelas
funcionesdelncleo.
2. Implementarelmecanismodepropagacindel
cambio.
3. Diseareimplementarlasvistas.
4. Diseareimplementarloscontroladores.
5. Diseareimplementarlarelacinvista
controlador.
6.
6 Implementarelsetup delmodeloMVC.
delmodeloMVC
7. Crearvistasdinmicamente.
8. Proveercontrolespluggable.
9. Establecerunainfraestructuraparaunajerarqua
devistasycontroladores.

17
09/02/2012

PatrnMVC:Variantes
DocumentView
Estevarianteesflexibleencuantoala
separacindevistasycontroladores.
EnmuchasplataformasGUI,tantoeldisplay
delosdatoscomolaadministracindelos
eventosessoportadaporunmismo
componente.t

PatrnMVC:Usoscomunes
Smalltalk
MFC
ET++

18
09/02/2012

PatrnMVC:Beneficios
Mltiplesvistasdeunmismomodelo.
Vistassincronizadas
Vistasycontroladoresquesepueden
incorporaroquitarentiempode
ejecucin.
Fcilintercambiodeplataformas(look
andfeel).
Potenciacindelusodeframeworks.

PatrnMVC:Desventajas
Incrementodecomplejidad
E i d d t
Excesivonmerodeupdates.
Conexinntimaentrevistaycontrolador.
Acoplamientodelasvistasycontroladoresal
modelo.
Ineficienciadeaccesoadatos.
Dificultaddeusarelmodeloconalgunas
herramientasdediseodeinterfazdeusuario.

19
09/02/2012

ModeloVistaControl
Utilizapatronesdediseocomo:
Observer(Publish/Suscriber)
Composite
Strategy
Decorator
Factorymethod

PATRNPRESENTACIN

ABSTRACCINCONTROL(PAC)

20
09/02/2012

PresentacinAbstraccinControl
(PAC)
Similaralmodelovistacontrolador(MVC).
PACdefineunaestructuraenlaformade
unajerarquadeagentescooperantes,cada
unodeellosconsistenteenunatradade
presentacin,abstraccinycontrol.

PresentacinAbstraccinControl
(PAC)
Nombre PresentacinAbstraccinControl(PAC)
Desarrollodeunaaplicacin interactivaconla
Contexto
ayudadeagentes.
Unsistema interactivoconmltiplesagentes
cooperantes,endonde:
Losagentesconfrecuenciamantienen su
Problema p p y
propioestadoydatos.
Cadaagenteproporcionasupropiainterfazde
usuario.
Elsistemaevolucionaeneltiempo.
Estructurar elsistemaenunajerarquade
Solucin
agentesPAC(tradas).

21
09/02/2012

PresentacinAbstraccinControl
Losagentes(otradas)secomunicanentres
sloatravsdelcontroldepartedecada
trada.
TambindifieredeMVCenquedentrodecada
trada,seaslaporcompletolapresentacin(vista
enMVC)ylaabstraccin(modeloenMVC),
Estoofrecesepararelmodeloylavista,lo
cul,daalusuariounaexperienciaporcortos
periodos,decmolainterfaz(presentacin)
puedesermostradaantesquelaabstraccin
estcompletamenteinicializada.

PresentacinAbstraccinControl
ElControlesalgosimilaralControladoren
laarquitecturaMVC.Esteprocesaeventos
externosyactualizaelmodelo.Tambinse
actualizadirectamentelapartede
presentacin.
Sinembargo,esdiferentedelcontroladoren
MVCenlamedidaenquestepasaloscambios
queseestnrealizandoasucomponentepadre.

22
09/02/2012

PresentacinAbstraccinControl
LaAbstraccincontienelosdatos,aligual
queenMVC.Sinembargo,puedeserslo
unapartedelaestructuradedatos
completadelaaplicacin,ynodesempear
unpapelactivoenlanotificacinde
cambios.
Lapresentacinesexactamenteigualquela
vistaenelMVC.Muestralainformacin
i t e elMVC M e t l i fo i
desdelaabstraccin.

PresentacinAbstraccinControl

23
09/02/2012

PatrnPAC:Estructura
Clase:ToplevelAgent Colaboradores
I t di t
Intermediate
Responsabilidades:
levelAgent
Proporcionalafuncionalidad
Bottomlevel
nucleardelsistema.
Agent
ControlalajerarquaPAC

PatrnPAC:Estructura
Clase:Intermediatelevel Agent Colaboradores
T l l Agent
Toplevel A t
Responsabilidades:
Bottomlevel
Coordinaconloslowerlevel
Agent
Agents.
Componeloslowerlevel
Agents enunanicaunidad
dealtaabstraccin.

24
09/02/2012

PatrnPAC:Estructura
Clase:Bottomlevel Agent Colaboradores
T l l Agent
Toplevel A t
Responsabilidades:
Intermediate
Proporcionaunavista
level Agent
especficadelsoftwareode
unserviciodesistemas,
incluyendosuinteraccin
hombremquina.

PresentacinAbstraccinControl

25
09/02/2012

PresentacinAbstraccinControl
Elcontrolpadrecrealoselementosdesu
hij PAC l d l
hijoPAC,yaseaenelarranquedel
programa,odinmicamenteentiempode
ejecucin.
CuandoelcontroldeunPACrecibeun
( ),
eventodeusuario(1),estedebeactualizar
supresentacin(2a)y/osuabstraccin(2b).

PresentacinAbstraccinControl
Acontinuacin,seenvauneventodecambioasu
padre(3)
padre(3).
Elpadreactualizasushijos(peronoalnododonde
surgielcambio)(5),porloquetodosactualizan
suPresentacin(6a)y/oabstraccin(6b).
Despusquelosnodoshansidoactualizados,el
padreseactualiza(7).
padreseactualiza(7)
EstoterminacuandotodosloselementosPAC
necesarioshansidoactualizados.

26
09/02/2012

PATRNCONTROLADORDE

PGINA

PageController

Nombre Page Controller


Cuandoaldesarrollar unaarquitecturaMVC,se
Contexto
tienelavistaremotadelmodelo.
Senecesitaunmecanismo queconsolideel
Problema soporteyejecucindepedidosdeservicio
establecidosporunformularioespecfico.
Paracadaformularioofrecidoporunainterfaz de
usuario,introduciruncontroladordepginaque
Solucin
administrelaejecucindetodoslospedidos
efectuadosatravsdelformulario.

27
09/02/2012

Controladordepginas
SetieneunControladordepginaporcada
i l i (f l i )d l iti W b
pginalgica(formulario)delsitioWeb.
Elcontroladorpuedeserlapginaensi
mismacuandoellaestaenelmediode
pginasdelservidoropuedeserunobjeto
p q p p g
separadoquecorrespondeaesapgina

Controladordepginas

Vista

Muestra HTML()
Controlador de paginas

Decide cual modelo y vista usar()

Modelo

Logica Dominio()

28
09/02/2012

Controladordepginas
ElControladordepginaspuedeser:Script
CGI i t l t
CGIscript,servlet.
PginasenelservidorASP,PHP,JSP.
Laspginasenelservidorcombinan
ControladordepginasyPlantilladeVista
(TemplateView)enelmismofichero.
(TemplateView)enelmismofichero

ResponsabilidadesdelControlador
depginas
DecodificarlaURLyextraercualquierdatodel
formularioparaentendertodoslosdatosparala
accin
Creareinvocarcualquierobjetodelmodelopara
procesarlosdatos.Todoslosdatosrelevantesde
lasolicitudHTMLdebenserpasadosalmodelotal
quelosobjetosdelmodelononecesitenninguna
conexinalasolicitudHTML
Determinarcualvistadebemostrarlapgina
resultadoyenviarlainformacindelmodeloaesa
vista

29
09/02/2012

ResponsabilidadesdelControlador
depginas
ElControladordepginasnonecesitaser
l l t d i bj t
unasolaclase,stapuedeinvocarobjetos
deayuda.
Estoesparticularmentetilsivarios
manejadoresnecesitanhacertareas
similares.

PATRNCONTROLADORDE

FACHADA

30
09/02/2012

FrontController

Nombre Front Controller


Cuandoaldesarrollar unaarquitecturaMVC,se
Contexto
tienelavistaremotadelmodelo.
Senecesitaunmecanismo queconsolideel
Problema soporteyejecucindepedidosdeservicio
establecidosparaunaaplicacin.
Introduciruncontroladordefachadaque
publiquelafuncionalidaddelaaplicaciny
Solucin transformelospedidosdeserviciodelclienteen
requerimientosespecficosquepuedenser
invocadosenloscomponentesdelaaplicacin.

Controladordefachada
(FrontController)
Uncontroladorquemanejatodoslos
i it iti W b
requisitosparaunsitioWeb.
EnunsitioWebcomplejohaymuchascosas
similaresquenecesitanhacerseasolicitud
delmanejadordelsitio.
Estoincluyeseguridad,internacionalizacin,
proveerdedeterminadasvistasaciertos
usuarios,etc.
Estepatrnconsolidaestoenunsolo
objeto.

31
09/02/2012

Controladordefachada
(FrontController)
<<Abstract>>
Handler Comma nd

dog
g et()
() Process()
dop ost()

Concrete Cocrete
Command 1 Command 2

Process() Process()

Elmanejadorpuedellevaracaboel
comportamientocomnquepuedesercambiadoen
tiempodeejecucinporlosdecoradores.
Ejemplo:Java

PatronesdeArquitectura
Estructurales

32
09/02/2012

Patronesestructurales
Dansoporteaunadescomposicin
t l d d t ld l i t
controladadeunatareageneraldelsistema
enunconjuntodesubtareascooperativas.

Patrn Definicin
Ayuda a estructurar aplicaciones
que pueden ser descompuestas en
Layers (Capas) grupos de sub-tareas que
representan diferentes niveles de
abstraccin.
Pipes and Filters Proporciona una estructura para
(Tuberas y sistemas que procesan flujos de
filtros) datos
Es til para problemas en donde no
hay estrategias de solucin
determinadas.
Blackboard
Bajo este patrn varios subsistemas
(Pizarra)
especializados ensamblan su
conocimiento para construir una
solucin parcial o aproximada.

33
09/02/2012

PATRNDECAPAS

Patrndecapas
Nombre Capas(Layers)

Unsistemagrandequerequiere
Contexto
descomposicin
Cmodisearunsistemacuyas
caractersticasdominantessonunamezcla
Problema
defuncionesdealtoybajonivel,dondelas
dealtoniveldependendelasdebajonivel?
Estructurarelsistemaenunnmero
Solucin apropiadodecapasycolocarlasunaencima
delaotra.

34
09/02/2012

LayersPattern
ElmodelodecapasOSI7

Patrndecapas:Influencias
Sedebebalancearlosiguiente:
Lasmodificacionesalcdigonosedeben
propagaratodoelsistema.Sedebenefectuar
enunsolocomponente.
Lasinterfacesdebenserestables.
Laspartesdelsistemadebenser
intercambiables.
Otrossistemaspuedenaccederala
funcionalidaddebajonivel.

35
09/02/2012

Patrndecapas:Estructura
Unacapai,sepuededescribirenunatarjetaCRC
como

Clase: Capa I Colaborador


Capa I-1
Responsabilidades:
Proporcionar
servicios a la capa
I+1.
Delegar sub-tareas a
la capa I-1

Patrndecapas:Estructura
LosserviciosdeunacapaIslopuedenserusados
porlacapaI+1

36
09/02/2012

Patrndecapas:Dinmica
EscenarioI:Unclienteponeun
requerimientoenlacapaN
requerimientoenlacapaN.
DadoquelacapaNnopuederesolverelpedido
porsimisma,llamaalacapaN1yestaasuvez
alacapaN2yassucesivamentehastaalcanzar
lasubtareasenlacapa1.
j q p
Lainformacinbajoesteesquematopdowny y
deflujodecontrolsedenominausualmente
pedidoorequest.

Patrndecapas:Dinmica
EscenarioII:Ilustralacomunicacinbottom
up
up.
Unacadenadeaccionescomienzaenlacapa1,
porejemplocuandoundispositivodetectaun
input.
Eldispositivotraducelaentradaaunformato
y p p ,q
internoyloreportaalacapa2,quelo
interpretayassucesivamente.
Lasllamadasbottomupusualmenteseconocen
comonotificaciones,notifications.

37
09/02/2012

Patrndecapas:Dinmica
EscenarioIII:Describelasituacinendonde
l did l t d i j
lospedidossolamentepuedenviajara
travsdeunsubconjuntodecapas.
Lascapasenesteesquemaretieneninformacin
mientrasquelasdelescenario1 no.

Patrndecapas:Dinmica
EscenarioIV:SimilaralescenarioIII.Un
t d t t l
eventosedetectaenlacapa1,perose
detieneenlacapa3.
Sedaensituacionesendondeunpedidose
puedeestablecerdosvecesyelservidorlo
atendiya.
Enestecasolacapa3impedirquelarespuesta
lleguedosveces.

38
09/02/2012

Patrndecapas:Dinmica
EscenarioV:InvolucradospilasdeNcapasquese
comunicanentresi.
Esteescenarioesmuyconocidoyseempleaen
protocolosdecomunicacin,endondecadapiladecapas
esconocidacomoprotocolstacks.

Patrndecapas:Pasosparasu
Implementacin
1. Definirloscriteriosdeabstraccinparaagrupar
tareasencapas.
Ejemplodecriteriosdeabstraccin:
Elementosvisibles
Mdulosespecficosdelaaplicacin
Niveldeservicioscomunes.
Niveldelainterfazconelsistemaoperativo.
Elsistemaoperativo
Hardware
2. Determinarelnmerodenivelesdeabstraccin
Cadaniveldeabstraccinsecorresponderconuna
capa.

39
09/02/2012

Patrndecapas:Pasosparasu
Implementacin
3. Ponernombreacadacapayasignarlastareas
decadauna.
Latareadelacapamsaltaeslatareageneraldel
sistemapercibidaporelcliente.
4. Especificarlosservicios
Elprincipiodeimplementacinmsimportantees
quelascapasestnseparadaslasunasdelasotras.
Lascapasmsaltassonlasquecontienenmayor
nmerodeservicios.

Patrndecapas:Pasosparasu
Implementacin
5. Refinarlascapas.
Repetirlospasos1al4hastaalcanzaruna
divisindecapasestable.
6. Especificarunainterfazparacadacapa
EstoescuandolacapaIesunacajanegra
paralacapaI+1.Entonceslainterfazse
encargadeofrecerlosserviciosdelacapaI.

40
09/02/2012

Patrndecapas:Pasosparasu
Implementacin
7. Estructurarlascapasindividuales.
p
Unacapacomplejadebeserdescompuestaen
varioscomponentes.
8. Especificarlacomunicacinentrecapas
adyacentes.
Elmecanismomscomneselmodelo
push

Patrndecapas:Pasosparasu
Implementacin
9. Desacoplarlascapasadyacentes.
Esbuenoconservarelacoplamientotop
downanparacomunicacionesbottomupen
dondesepuedeutilizarfuncionescallback
10. Disearunaestrategiademanejode
errores.
Unaregladeoroestratardemanejarlos
erroresenelniveldecapasmsbajo.

41
09/02/2012

Patrndecapas:Ejemplo
ElprotocolocomnmenteusadoTCP/IPutilizael
siguientemodelode4capas.

Patrndecapas:Variantes
RelaxedLayeredSystems
Esunpatrnmenosrestrictivoencuantoalas
relacionesentrecapas.
Aqucadacapapuedenusarlosserviciosde
todaslascapasbajoella.
Lagananciaenflexibilidadyrendimiento
proporcionadaporestossistemasvaen
contradelmantenimiento.

42
09/02/2012

Patrndecapas:Usoscomunes
Mquinasvirtuales.
API
APIs
UnaAPIesunacapaqueencapsulanivelesmsbajos
defuncionalidaddeusofrecuente.
Sistemasdeinformacin
Presentacin
Lgicadelaaplicacin
Dominio
Basededatos.
WindowsNT

Patrndecapas:Beneficios
Reusodecapas
Soportealaestandarizacin
Lasdependenciasseconservan
localmente.
Habilidaddeintercambio.

43
09/02/2012

Patrndecapas:Desventajas
Comportamientoencascada
Menoreficiencia
Trabajoinnecesario
Dificultaddeestablecerlagranularidad
correctadelascapas.

Lecturasrecomendadas
Libros
F.BUSCHMANN,R.MEUNIER,H.ROHNERT,
P.SOMMERLAD,M.STALPatternOriented
SoftwareArchitecture.ASystemofPatterns.
Cap.2

44

S-ar putea să vă placă și