मैं क्लाइंट-सर्वर आर्किटेक्चर में वायर डेटा-प्रारूप के रूप में प्रोटोकॉल बफर का उपयोग कर रहा हूं। डोमेन ऑब्जेक्ट्स (जावा बीन्स) जीवन चक्र के माध्यम से चलेगा।प्रोटोकॉल बफर और ओओ डिज़ाइन
- ग्राहक के पक्ष व्यापार तर्क में इस्तेमाल किया
- प्रारूप Protobuf को
- सर्वर
- डोमेन वस्तु
- सर्वर साइड व्यापार तर्क में प्रयुक्त करने के लिए वापस परिवर्तित करने के लिए संचारित परिवर्तित
"Protocol Buffers and O-O Design" प्रोटोबफ दस्तावेज में सेक्शन उचित डोमेन मॉडल के अंदर जेनरेट कक्षा को लपेटने की सिफारिश करता है।
मैं सबसे अच्छा ऐप खोजना चाहता हूं।
उदा। मेरे पास एक साधारण प्रोटो परिभाषा है।
package customer;
option java_package = "com.example";
option java_outer_classname = "CustomerProtos";
message Customer {
required string name = 1;
optional string address = 2;
}
इस प्रकार डोमेन मॉडल परिभाषित किया गया है। जैसा कि आप देख सकते हैं, डेटा पूरी तरह से प्रोटो बिल्डर ऑब्जेक्ट में संग्रहीत है।
package com.example;
public class CustomerModel
{
private CustomerProtos.Customer.Builder builder = CustomerProtos.Customer.newBuilder();
public String getName()
{
return builder.getName();
}
public void setName(String name)
{
builder.setName(name);
}
public String getAddress()
{
return builder.getAddress();
}
public void setAddress(String address)
{
builder.setAddress(address);
}
public byte[] serialize()
{
return builder.build().toByteArray();
}
}
क्या यह एक अच्छा अभ्यास है? क्योंकि इन वस्तुओं का उपयोग जीवन चक्र के सभी चरणों में किया जाता है, लेकिन हमें केवल क्लाइंट-सर्वर ट्रांसमिशन चरण में प्रोटोकॉलबफ प्रारूप की आवश्यकता होती है।
प्रोटो बिल्डर क्लास गेटर/सेटर विधियों तक विशेष रूप से प्रोटो परिभाषा जटिल और घोंसला होने पर कोई प्रदर्शन समस्या है?