私は非常にモジュール化されたシステムで作業しています。メッセージは、src、dest、type の 3 タプルで判別できます。
プロトコル バッファを使用してメッセージを再実装することを検討しています。Protocol buffer polymorphismを読みましたが、プロトコル バッファでポリモーフィズムを行う正しい方法は何ですか? およびhttp://www.indelible.org/ink/protobuf-polymorphism/
私が疑問に思っているのは、次のようなソリューションを実装した人がいるということです。
message header {
required string src = 1
required string dest = 2
required string type = 3
}
そして、次の場合に個別のメッセージを作成します。
message foo {
required header h = 1
required string a = 2
}
別ファイル:
message bar {
required header h = 1
required uint32 num = 2
}
受信コードには次のようなものがあります。
Message.ParseFromString(msgStr)
if (Message.type == foo)
{
FooMessage.ParseFromString(msgStr)
}
else {
BarMessage.ParseFromString(msgStr)
}
このアプローチが使用された場合、上記のリンクで説明されているものよりも良いですか、それとも悪いですか?