8. Participantes / Colaboraciones

Estos son dos apartados que derivan de la Estructura y que tienen gran relación entre si.

La estructura nos muestra gráficamente a los protagonistas, y la sección de Participantes nos los describe.  Luego, la relación entre cada uno de estos protagonistas con cualquier otro protagonista se trata como una colaboración.

Podemos hablar de un SujetoConcreto y de un Observador cuando describimos estos participantes del patrón Observer, y luego indicamos que "el SujetoConcreto notifica a sus observadores sobre cualquier tipo de cambio que pueda provocar alguna inconsistencia entre su estado y el estado de sus observadores" [Gamma95:295]

Describir a los participantes es una simplificación de un Diccionario de Datos que se limita a mirar cada uno de los componentes, y describir las colaboraciones es otra simplificación del Diccionario de Datos que se limita a indicar las relaciones entre los componentes.

De la misma forma en que un Diagrama de clases o un diagrama E-R sirven para describir la Estructura, un diagrama de eventos o un diagrama de flujo de datos nos puede ilustrar la manera en que colaboran los elementos del patrón.  Aquí, como en los diagramas de Estructura, se siguen los lineamientos del tipo de diagrama que se haya escogido para describir el patrón.


Un detalle muy importante es que cada una de las secciones tratadas dentro de la construcción de patrones es muy específica.  La especialización permite cubrir a profundidad sin aumentar la complejidad del asunto tratado.


En un proceso de cierre podríamos haber ilustrado la interacción entre un VerificadorDeEstado, un LectorDeDatos, y un EjecutorDeDatos.  Ahora tenemos que describirlos individualmente:

Participantes:

VerificadorDeEstado : conoce las condiciones que ofrecen un mecanismo de término del proceso de cierre.  Estas condiciones no necesariamente son estáticas y dependen en mucho de las condiciones de los datos y de quien realiza el proceso completo.

LectorDeDatos : agente que puede navegar sobre las fuentes de datos que han cambiado desde la última vez que se ejecutó un cierre.

EjecutorDeDatos : agente que puede crear nuevas condiciones en los datos, a partir de un conjunto de situaciones determinadas.

Colaboraciones:

Se inicia un ciclo que continúa siempre y cuando el VerificadorDeEstado determine que existen condiciones para no concluirlo.  Este ciclo se alimenta de los eventos que de manera concurrente puedan enviar diversas instancias de EjecutorDeDatos y de LectorDeDatos.

El EjecutorDeDatos puede actuar siempre que un LectorDeDatos encuentre información que amerite alguna transformación en las condiciones de los datos.



  1