Tôi có nhiều lược đồ khác nhau, tuy nhiên có một tập hợp các trường mà mỗi lược đồ chứa. Tôi đã tự hỏi nếu có một cách để có một lược đồ khác nhau mở rộng một lược đồ cha và kế thừa các trường của nó. Ví dụ: đây là những gì tôi muốn:Mở rộng Tin nhắn Protobuf
message Parent {
required string common1 = 0;
optional string common2 = 1;
}
message Child1 { // can we extend the Parent?
// I want common1, common2 to be fields here
required int c1 = 2;
required string c2 = 3;
}
message Child2 { // can we extend Parent?
// I want common1, common2 to be fields here
repeated int c3 = 2;
repeated string c4 = 3;
}
Như vậy Child1 và Child2 cũng chứa các trường common1 và common2 (và có thể nhiều hơn) từ cha mẹ.
Điều này có thể thực hiện được không?
thừa kế không được hỗ trợ, nhưng là giải pháp một người đàn ông nghèo, bạn có thể sử dụng một cấu trúc lồng nhau nơi trường đầu tiên của 'Child1' và ' Child2' thuộc loại 'Parent'. Để truy cập vào các trường trong "lớp cơ sở", bạn sẽ phải truy cập rõ ràng trường 'Parent'-typed trước. –
Ngoài ra còn có phần mở rộng. https://developers.google.com/protocol-buffers/docs/proto#extensions Mở rộng – engineerC