Protocol Buffer のドキュメントでは、次のように警告されています...
生成されたクラスから継承して動作を追加しないでください。これは内部メカニズムを破壊するので、オブジェクト指向の実践としては適切ではありません。
出典:プロトコルバッファの基本
私の2つの部分の質問は次のとおりです。
- これにより、どのような内部メカニズムが壊れる可能性がありますか?
- とにかく、これは良い OO プラクティスではありませんか?
Protocol Buffer のドキュメントでは、次のように警告されています...
生成されたクラスから継承して動作を追加しないでください。これは内部メカニズムを破壊するので、オブジェクト指向の実践としては適切ではありません。
出典:プロトコルバッファの基本
私の2つの部分の質問は次のとおりです。
「何がうまくいかないのか」は、実装固有のものになります。特定の実装を引用した場合、答えられる可能性がありますが、より一般的な意味では、これはサポートされているシナリオではなく、サブクラス化する場合、実装が正しく機能する必要がないか、まったく機能しません。これは未定義の動作であり、すべての意味があります。さらに、すべてのターゲット プラットフォームが継承をサポートできるわけではないため、プロトコル バッファは継承をサポートしません。主な考え:
SomeDerivedClass
と、シリアライザがそれを返す方法はありませんオブジェクト指向の問題として; これはあなたのタイプではありません。これは、特定の目的を果たすように設計された DTO です。一般的な使用法は、DTO からドメイン モデルへの/からのマッピングであり、より複雑になる可能性があります。または、DTO が有用な場合は (おそらくファサードとして) DTOをカプセル化することもできます。