2010-09-07 10 views
5

Antecedentes de pregunta¿Es correcto el diagrama de clase UML de Zend_Log?

Análisis de Zend_Log revela siguiente diagrama de clase

Zend_Log:

  • utiliza ReflectionClass & Zend_Log_Exception
  • mantiene referencia a la matriz de Zend_Log_Writer_Abstract
  • mantiene ref erences a la matriz de Zend_Log_Filter_Interface

Zend_Log_Writer_Abstract

  • mantiene referencia a la matriz de Zend_Log_Filter_Interface
  • mantiene referencia a Zend_Log_Formatter_Interface

alt text

Preguntas

  1. Zend_Log_Filter_Interface relaciona con Zend_Log_Filter_Suppress, Zend_Log_Filter_Message & Zend_Log_Filter_Priority tal como se representa, se esta bien instalado en el diagrama de clases?
  2. ¿Está bien decir que, Zend_Log contiene referencia a la matriz de Zend_Log_Filter_Interface y esta es la relación de composición (de manera similar para Zend_Log_Writer_Abstract)?
  3. Como es obvio que Zend_Log_Filter_Interface es contenida por tanto Zend_Log & Zend_Log_Writer_Abstract, mientras Zend_Log contiene Zend_Log_Writer_Abstract, que hace Zend_Log_Filter referenciado por tanto recipiente (Zend_Log) y contenía (Zend_Log_Writer_Abstract); es ese un "Patrón de diseño", si es así, ¿cuál es el nombre?

¡Recuerdos!

+1

Los diagramas como estos deben ser parte de la documentación oficial, ayudan mucho. Una vez que lo hayas confirmado, ¡díselo a alguien oficial al respecto! – chelmertz

+0

¡Agradable! Hiciste esto manualmente? – stefgosselin

+0

@stefgosselin Gracias. He usado NClass y he creado manualmente el diagrama – r0ash

Respuesta

2
  1. Zend_Log_Filter_Suppress, Zend_Log_Filter_Message y Zend_Log_Filter_Priority toda implementar la interfaz Zend_Log_Filter_Interface. Esto se denota usando la flecha vacía y las líneas punteadas entre ellos. Lo mismo es cierto para Zend_Log_Formatter_Interface y las tres clases representadas debajo.

  2. Sí, eso es correcto. Si se debe usar una asociación (->) o una composición aquí podría debatirse ya que dos instancias Zend_Log podrían compartir una sola instancia de Zend_Log_Writer_Db. Como los escritores y los filtros determinan el comportamiento general del registro, la composición tiene sentido para mí.

  3. Cada instancia de registro puede escribir en varios escritores. Los mensajes primero se filtran por el registro en sí, y cualquier mensaje que pasa va a cada escritor. Cada escritor filtra los mensajes entrantes también. Esto le permite ignorar todos los mensajes debajo de la prioridad WARN (en el nivel de registro) que se escriben en un archivo y limitan aún más el inicio de sesión de la base de datos en el nivel FATAL.Podría lograr el mismo efecto eliminando la matriz de filtro de nivel de registro, pero requeriría duplicar el filtrado en cada escritor.

Cuestiones relacionadas