Según estoy viendo....
Esto es un claro ejemplo de un mal diseño. Considero que deberías replantear el diseño y el análisis del problema.
No veo otra manera de resolverlo que reformular el diseño...
No se... ¿Tal vez se trata de un caso especial del uso del patrón Observador?
Saludos,