Programación orientada a objetos:problemas para notificar a otros objetos en la jerarquía de

StackOverflow https://stackoverflow.com/questions/1853162

Pregunta

Siempre tengo problemas con el envío de mensajes entre objetos.Considerar la jerarquía de objetos de un cuestionario:

  • Quiz
    • QuestionList
      • Pregunta
        • AnswerList
          • Respuesta

Así:
la Prueba tiene un QuestionList
un QuestionList tiene varias Preguntas
una Pregunta tiene un AnswerList
un AnswerList tiene múltiples Respuestas

Cuando una Respuesta se presenta clic (estamos hablando de Flash AS3 aquí):
Respuesta notifica AnswerList.
AnswerList notifica a la Pregunta.
Pregunta notifica QuestionList.
QuestionList notifica a Prueba.

En otras palabras, el mensaje de las burbujas.Esto es posible ya que yo paso de cada uno de los 'padres' del objeto a través del constructor de que es un "niño".Pero creo que leí en alguna parte que los objetos no deberían ser conscientes de su padre.Debo tomar otro enfoque?

Gracias.

¿Fue útil?

Solución

Sí, usted no debe dar a los objetos secundarios enlaces a sus padres.Supongo que la situación en la que se explicó anteriormente es una jerarquía de visualización.En ese caso, podría hacerlo mucho mejor utilizando el sistema de eventos.Puede crear eventos personalizados que se envían, cuando las cosas suceden y el padre tendría que añadir a los oyentes a eventos para cuidar de aquellos.

Un posible evento escenario de su estructura sería por ejemplo el siguiente:

  • Respuesta (un botón) se hace clic en, y la escucha AnswerList avisos que.
  • El AnswerList distribuye una "respuesta" del evento, que es recibida por la pregunta.
  • La Pregunta envía una "respuesta" evento para informar a la Lista de preguntas para marcar la pregunta como respondida
  • Cuando la Lista de preguntas ha recibido respondió eventos por todas las preguntas, distribuye un "acabado", evento de decirle a la Prueba de que se termine

Otros consejos

Es posible mirar las href="http://en.wikipedia.org/wiki/Observer_pattern" Observador patrón. En este patrón de diseño, los objetos pueden escuchar los cambios (o eventos) de un objeto. De esta manera, los mensajes puede propagarse por los hijos, sin saber a sus padres directamente. Ellos sólo saben que tienen que notificar a sus oyentes que algo ha cambiado. Usted puede incluso tener varios objetos de escuchar respuestas si lo desea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top