Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bridge State
Bridge State
APOO2007/2008
Patrn State
Comportamiento de objetos
PatrnState Motivacin
PatrnState Motivacin
Encdigoestructurado
Problemas:
switch($estado){ case'a': $result=a(); break; case'b': $result=b(); break; case'c': $result=c(); break; }
PatrnState Solucin
PatrnState Aplicabilidad
PatrnState Aplicabilidad
PatrnState Participantes
Contexto(Context)
Defineinterfaz Mantieneunainstanciaconelestadoactual
Estado(State)
SubclasesdeEstadoConcreto(ConcreteState)
PatrnState Consecuencias
Localizaelcomportamientodependientedelestadoy dividedichocomportamientoendiferentesestados.
Lastransicionesentreestadosnoresideensentenciasifo swtichmonolticas,sinoquesereparteentrelassubclases.
Haceexplcitaslastransicionesentreestados.
Introducirobjetosseparadosparalosdiferentesestadoshace quelastransicionesseanmsexplcitas.
LosobjetosEstadopuedencompartirse.
PatrnState UsosConocidos
ConexinTCP
ClaseabstractaEstadoTCPyderivanlosdiferentesestados delaconexin.
Herramientasdedibujo
Claseabstractaherramientayderivanlosdiferentestiposde herramientas.
PatrnState Usosconocidos
PatrnState Nuestraimplementacin
APOO2007/2008
Patrn Bridge
Estructural Para objetos
(A.K.A. Manejador/Cuerpo)
PatrnBridge Motivacin
PatrnBridge Motivacin
Primer Inconveniente:
Problema!
PatrnBridge Motivacin
Segundo Inconveniente:
+
VentanaX (implementacion)
PatrnBridge Motivacin
Solucin:
<-- BRIDGE -->
PatrnBridge Aplicabilidad
Sisequierecompartirunamismaimplementacionentrevarios clienes.
PatrnBridge EstructurayParticipantes
Abstraccin Abstraccin Redefinida Implementador Implementador Concreto
PatrnBridge Consecuencias
PatrnBridge UsosConocidos
ET++ framework para aplicaciones (Ejemplo anterior): - VentanaImp es un WindowsPort - Ventana es Window - De WindowPort derivan subclases concretas para cada plataforma: XWindowPort SunWindowPort ... El AppKit de NeXT usa un Bridge en la visualizacin de diferentes tipos de imgenes. El DOM de KDE3 esta basado en un bridge(Junto con otros patrones). Permite crear diferentes tipos de documentos usando la misma abstraccin.
PatrnBridge NuestraImplementacin
PatrnBridge
Fin...