Я работаю с очень модульной системой. Сообщения могут быть определены с помощью 3-х кортежей src, dest, type.Повторное удаление сообщения с помощью буферов протокола Google
Я изучаю переопределение наших сообщений с помощью протокольных буферов. Я прочитал Protocol buffer polymorphism, what's the right way to do polymorphism with protocol buffers? и 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)
}
Если используется этот подход, это лучше или хуже, чем описано в приведенных выше ссылок?