当前位置 : 主页 > 大数据 > 区块链 >

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

来源:互联网 收集:自由互联 发布时间:2021-06-22
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 我的两
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练习?

>“出了什么问题”将是非常具体的实施.如果您引用了特定的实现,则可能会回答,但从更一般的意义上说:这不是受支持的方案,并且如果您进行子类化,则实现不需要正常工作或根本不需要.这是一个未定义的行为,所有这些暗示.此外,协议缓冲区不支持继承,因为并非所有目标平台都支持它.主要想法:

>可能存在根据预期类型列表检查传入对象的代码 – 如果您的类型不存在,则可能会失败
>它不会处理您添加的任何字段等
>串行器的整个想法是强有力地回馈你序列化的东西;如果您序列化SomeDerivedClass,则序列化程序无法再将其返回给您
>像这样的图书馆的全部意义是隐藏血腥的实施细节;你不应该搞任何实现(多态必须设计)

>作为OO关注的问题;这不是你的类型;它是一个旨在服务于特定目的的DTO.常见的用法可能是从DTO映射到/来自您的域模型,这可能更复杂,或者如果有用(可能作为外观)可能封装DTO.

网友评论