Patrones Observer, Chain of responsability

Page 1

Neidy Yised Carvajal Cristian Camilo Peña Ingeniería de software II


Observer Pattern Patr贸n de dise帽o


Observer Pattern INTENCIÓN: • Define una dependencia de uno a muchos entre objetos de forma que cuando un objeto cambia de estado, todos sus dependientes son notificados y actualizados automáticamente. • Encapsular los componentes principales (o comunes o del motor) en un sujeto en la abstracción, y la variable (o de interfaz opcionales o de usuario) los componentes en una jerarquía de observador. • El "Ver" parte de Model-View-Controller.


Observer Pattern ESTRUCTURA:


Observer Pattern EJEMPLO: El observador define una relaciรณn uno-a-muchos, para que cuando un objeto cambia de estado, los otros son notificados y actualizados automรกticamente. Algunas subastas demuestran este patrรณn. Cada postor posee una paleta numerada que se utiliza para indicar una oferta. El subastador comienza la licitaciรณn, y "observa" cuando una pala se eleva a aceptar la oferta. La aceptaciรณn de la oferta cambia el precio de la oferta que se transmite a todos los postores en la forma de una nueva oferta.


Observer Pattern


Observer Pattern

REGLAS GENERALES: • Cadena de Responsabilidad del Comando, Mediador y Observer, aborda cómo se puede desacoplar los remitentes y receptores, pero con diferentes ventajas y desventajas. Cadena de Responsabilidad pasa un remitente de la petición a lo largo de una cadena de receptores potenciales. Comando normalmente especifica una conexión emisor-receptor con una subclase. Mediador tiene remitentes y receptores de referencia unos a otros de manera indirecta. Observador define una interfaz muy disociada que permite múltiples receptores a configurar en tiempo de ejecución.


Observer Pattern • Mediador y Observadores son patrones compitiendo. La diferencia entre •

ellos es que Observador distribuye la comunicación mediante la introducción de "observador" y "sujetos" objetos, mientras que un objeto mediador encapsula la comunicación entre otros objetos. Por otro lado, Mediador puede aprovechar Observador de registrarse dinámicamente colegas y comunicarse con ellos.


Aplicabilidad • Cuando una abstracción tiene dos aspectos, uno dependiente de la otra. La • •

encapsulación de estos aspectos en los objetos separados permite variar y reutilizar independientemente. Cuando un cambio en un objeto requiere cambiar otros. Cuando un objeto debe ser capaz de notificar a otros objetos sin hacer suposiciones acerca de esos objetos.


Chain of Responsability Cadena de Responsabilidad


Chain Of Responsability

Intención: • Establecer una cadena en un sistema, para que un mensaje pueda ser

manejado en el nivel en el que se recibe en primer lugar, o ser redirigido a un objeto que pueda manejarlo.


Chain Of Responsability ESTRUCTURA:


Chain Of Responsability Se utiliza Cuando: • Las peticiones emitidas por un objeto deben ser atendidas por distintos • • •

objetos receptores. No se sabe a priori cual es el objeto que me puede resolver el problema. Cuando un pedido debe ser manejado por varios objetos. El conjunto de objetos que pueden tratar una petición debería ser especificado dinámicamente.


Chain Of Responsability Motivación: Es crear un sistema que pueda servir a diversas solicitudes de manera jerárquica. En otras palabras, si un objeto que es parte de un sistema no sabe cómo responder a una solicitud, la pasa a lo largo del árbol de objetos. Como el nombre lo implica, cada objeto de dicho árbol puede tomar la responsabilidad y atender la solicitud. Un ejemplo típico podría ser el lanzar un trabajo de impresión. El cliente no sabe siquiera qué impresoras están instaladas en el sistema, simplemente lanza el trabajo a la cadena de objetos que representan a las impresoras. Cada uno de ellos lo deja pasar, hasta que alguno, finalmente lo ejecuta. Hay un desacoplamiento evidente entre el objeto que lanza el trabajo (el cliente) y el que lo realiza (impresora).


Ejemplo:

Chain Of Responsability

Escenario: estamos realizando el software para un banco y uno de los puntos más importantes es saber quién puede aprobar un crédito. Por lo tanto el banco define las siguientes reglas de negocio:

• Si el monto no supera los $ 10.000 entonces el ejecutivo de cuenta pueda • • •

aprobar el préstamo. Si el monto esta entre los $10.000 y $50.000 entonces la persona indicada para realizar la aprobación es el líder inmediato de dicho ejecutivo. Si el monto se encuentra entre $ 50.000 y $100.000 entonces es el Gerente quién debe realizar dicha aprobación. Por montos superiores a los $100.000 entonces la aprobación la realizará el Director.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.