美文网首页
flutter foundation的DiagnosticsSe

flutter foundation的DiagnosticsSe

作者: 一叠纸船 | 来源:发表于2020-09-16 11:14 被阅读0次

    DiagnosticsSerializationDelegate是有3个属性和7个方法的,_DefaultDiagnosticsSerializationDelegate实现了DiagnosticsSerializationDelegate方法,除了工厂方法,会用DiagnosticsSerializationDelegate的代码解读,其他的属性和方法都会用_DefaultDiagnosticsSerializationDelegate解读,解读了_DefaultDiagnosticsSerializationDelegate也就是解读了DiagnosticsSerializationDelegate。

    属性有3个,这三个都只能get,不能set:

    1. subtreeDepth用来控制DiagnosticsNode类型对象垂直结构的层级的
    2. includeProperties 在DiagnosticsNode序列化时是否包含properties。
    3. expandPropertyValues 是否扩展具有DiagnosticableMixin类型值的属性

    方法有7个:

    1. 在DiagnosticsSerializationDelegate里的工厂方法DiagnosticsSerializationDelegate(), 返回的就是_DefaultDiagnosticsSerializationDelegate类型的对象
    2. additionalNodeProperties返回DiagnosticsNode类型的一些其他的可序列化信息的映射
    3. filterChildren这个方法会传入两个参数,一个是List<DiagnosticsNode>类型的,一个是DiagnosticsNode类型的。参数owner是参数nodes的”拥有者“,在这个方法内可以筛选出owner新持有的children,即子节点的集合。这个新的集合可能是nodes的子集,也有可能是全新的子节点集合。
    4. filterProperties这个方法和filterChildren非常相似,唯一的不同时,它过滤得不是子节点集合,而是属性(property)的集合。
    5. truncateNodesList这个方法传入的也是两个参数,但是返回的值一定是nodes的子集,同时nodes可以代表是子节点集合或者属性(property)集合。
    6. delegateForNode这个方法返回DiagnosticsSerializationDelegate类型的值,其对应的subtreeDepth的值会减1。
    7. copyWith这个方法就是对当前对象的深复制

    这是解读flutter foundation的diagnostic中的一篇,如有错漏之处,还望斧正。

    相关文章

      网友评论

          本文标题:flutter foundation的DiagnosticsSe

          本文链接:https://www.haomeiwen.com/subject/phvfyktx.html