OBSERVADOR

Páginas: 9 (2209 palabras) Publicado: 26 de mayo de 2015
Patrón Observador en .NET - pattern Observer

Introducción
El patrón observador (pattern Observer) es uno de los patrones menos conocidos,
motivo principal por el cual se escriben estos contenidos para que se muestre de
una forma práctica, agradable y útil para en primer lugar entenderlo, y
posteriormente ser implementado en nuestros desarrollos de .NET.
Se espera que estos contenidos ayuden aentender mejor el funcionamiento de este
patrón y brinde la posibilidad de valorarlo por si interesa utilizarlo en nuestros
desarrollos, o implementar un híbrido que resulte útil para abordar determinados
problemas con los que se encuentre uno durante los desarrollos de Software.

Visión general del patrón
Este patrón se define como un patrón de tipo relacional de uno a muchos.

De esta forma, unsubscriptor (también denominado en algunas ocasiones como
observador) es el encargado de subscribirse a un publicador.
El publicador es a su vez el encargado de notificar que ha sucedido “algo” que
requiere la atención de sus subscritores.
En este punto, el publicador estará relacionado con todos sus subscriptores, y
cuando ocurra “algo”, todos los subscriptores se darán por enterados.

  Lógicamente, debe haber un mecanismo que permita agregar un subscriptor y
eliminar al subscriptor, tanto para que reciba notificaciones como para que deje de
recibirlas.
Aquí tampoco se está analizando la casuística de que con determinados sucesos,
el publicador sólo comunique que ha sucedido algo a unos determinados
subscriptores y a otros no. Simplemente vamos a analizar el caso general de este
patrón enel que todos los subscriptores reciben la comunicación de aviso
(notificación) por parte del publicador.

Aproximación
Vamos a empezar por lo tanto a preparar nuestra primera implementación del
patrón Observador.
Se trata de una implementación generalista.
Es decir, partiremos de la base de crear una biblioteca de clases cuyo proyecto
denominaré PatternObserver para crear en él las clases quepermitan comprender
y utilizar este patrón.
También crearé un proyecto adicional de tipo WinForms que utilizaré para probar la
implementación del patrón y demostrar su funcionamiento en esta primera
aproximación.

PatternObserver
El diagrama general de lo que vamos a crear es lo que se puede observar en la
siguiente imagen:

Aquí podemos observar un proyecto PatternObserver que contendrá lassiguientes
clases:

 





IObserver
ISubject
Subject

La explicación de cada una de estas clases es la siguiente:
IObserver es la interfaz que define qué debe notificarse a cada uno de los
subscriptores u observadores para indicarles que ha sucedido “algo” y que requiere
de su atención. Más adelante veremos cómo funciona esto realmente, pero lo que
tenemos que tener en cuenta es que contiene unmétodo llamado UpdateState()
que se encarga de actualizar ese estado o hecho.
ISubject es la interfaz que define las acciones que pueden acometerse con
respecto a cada uno de sus observadores. Es decir, conoce a sus observadores y
le permite subscribirse, desubscribirse, y notificar a todos y cada uno de sus
subscriptores la notificación correspondiente (en nuestro caso, llamar a
UpdateState()).
Subjectes para esta primera aproximación una clase que implementa ISubject y
que es consumida por la aplicación de ejemplo y demostración del funcionamiento y
uso de este patrón. Como vemos, para esta primera aproximación he querido crear
un proyecto que contenga esta clase también como clase que contenga esta
funcionalidad y que muestre como generarla a partir de ISubject, algo que haremos
en lasegunda aproximación para mostrar las dos opciones generales.
El diagrama general de clases del proyecto es el que se indica a continuación:

El código de nuestras clases es el que se indica a continuación:
IObserver
namespace PatternObserver

 

{ ///
/// Interface del patrón Observer.
///

public interface IObserver
{ ///
/// Método encargado de indicar que el estado...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • observadores
  • Observaciones
  • Observando Al Observador
  • “Observaciones”
  • Observaciones
  • Observador de estado
  • observaciones
  • Observaciones

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS