gpt4 book ai didi

protocol-buffers - 从生成的 Protocol Buffer 类继承

转载 作者:行者123 更新时间:2023-12-04 20:16:44 30 4
gpt4 key购买 nike

Protocol Buffer 文档警告说......

You should never add behaviour to the generated classes by inheriting from them. This will break internal mechanisms and is not good object-oriented practice anyway.



来源: Protocol Buffer Basics

我的两部分问题是:
  • 这会破坏什么内部机制?
  • 无论如何,这在什么方面不是一个好的 OO 实践?
  • 最佳答案

  • “出了什么问题”将是非常具体的实现。如果您引用了一个特定的实现,则可能可以回答,但在更一般的意义上:这不是受支持的场景,并且如果您子类化,则不需要实现正确工作或根本不需要实现。这是一个未定义的行为,所有这些都意味着。此外, Protocol Buffer 不支持继承,因为并非所有目标平台都支持它。关键思想:
  • 可能存在根据预期类型列表检查传入对象的代码 - 如果您不存在,它可能会失败
  • 它不会处理您添加的任何字段等
  • 序列化程序的整个想法是稳健地返回您序列化的内容;如果你序列化一个 SomeDerivedClass ,序列化程序无法将其归还给您
  • 像这样的库的全部意义在于隐藏血腥的实现细节;预计您不会弄乱任何实现(必须为多态性设计)
  • 作为面向对象的关注点;这不是你的类型;它是为特定目的而设计的 DTO。常见用法可能是从 DTO 映射到/从您的域模型映射,这可能更复杂,或者可能封装 DTO(如果有用的话)(也许作为外观)。
  • 关于protocol-buffers - 从生成的 Protocol Buffer 类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11242760/

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