gpt4 book ai didi

zend-framework - Zend_Log 的 UML 类图是否正确?

转载 作者:行者123 更新时间:2023-12-04 21:25:42 25 4
gpt4 key购买 nike

问题背景

Zend_Log 的分析揭示了以下类图

Zend_Log:

  • 使用 ReflectionClass 和 Zend_Log_Exception
  • 维护对 Zend_Log_Writer_Abstract 数组的引用
  • 维护对 Zend_Log_Filter_Interface 数组的引用

  • Zend_Log_Writer_Abstract
  • 维护对 Zend_Log_Filter_Interface 数组的引用
  • 维护对 Zend_Log_Formatter_Interface
  • 的引用

    alt text

    问题
  • Zend_Log_Filter_Interface 与 Zend_Log_Filter_Suppress、Zend_Log_Filter_Message 和 Zend_Log_Filter_Priority 相关,这在类图中是否正确布局?
  • 可以这么说,Zend_Log 包含对 Zend_Log_Filter_Interface 数组的引用,这是组合关系(对于 Zend_Log_Writer_Abstract 也是如此)?
  • 很明显,Zend_Log_Filter_Interface 被 Zend_Log 和 Zend_Log_Writer_Abstract 包含,而 Zend_Log 包含 Zend_Log_Writer_Abstract,这使得 Zend_Log_Filter 被容器 (Zend_Log) 和被包含 (Zend_Log_Writer_Abstract) 引用;那是一些“设计模式”,如果是的话,它的名字是什么?

  • 问候!

    最佳答案

  • Zend_Log_Filter_Suppress , Zend_Log_Filter_Message , 和 Zend_Log_Filter_Priority全部执行 Zend_Log_Filter_Interface界面。这使用空箭头和它们之间的虚线表示。 Zend_Log_Formatter_Interface也是如此以及它下面描绘的三个类。
  • 对,那是正确的。由于两个 Zend_Log,这里是否使用关联 (-->) 或组合可能会引起争论。实例可以共享一个 Zend_Log_Writer_Db实例。由于作者和过滤器决定了日志的整体行为,组合对我来说很有意义。
  • 每个日志实例可以写入多个写入器。消息首先由日志本身过滤,任何传递的消息都会发送给每个写入者。每个作者也过滤传入的消息。这允许您忽略 WARN 以下的所有消息。优先级(在日志级别)写入文件并进一步将数据库日志记录限制为 FATAL等级。您可以通过删除日志级过滤器数组来实现相同的效果,但它需要在每个写入器中重复过滤。
  • 关于zend-framework - Zend_Log 的 UML 类图是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3655209/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com