के साथ बिल्डर पैटर्न मैं एक ऑब्जेक्ट के रूप में एक वेब सेवा यूआरएल अनुरोध का प्रतिनिधित्व करना चाहता हूं, और पाया कि कई सामान्य पैरामीटर हैं जिन्हें विरासत पदानुक्रम में "बुलबुला" किया जा सकता है। एक अनुरोध में बहुत से पैरामीटर हो सकते हैं, कुछ अनिवार्य और अन्य वैकल्पिक, जिसके लिए मुझे विश्वास है कि ब्लोच बिल्डर पैटर्न एक अच्छा विकल्प है, जो एक धाराप्रवाह इंटरफ़ेस के साथ तर्कों का अनुकरण करता है।उत्तराधिकारी
विशेष रूप से, मैं गूगल मैप्स वेब सेवा एपीआई, सामान्य वेब सेवा अनुरोध
http://maps.googleapis.com/maps/api/service/output?{parameters}
service
और output
अनिवार्य तर्क हैं, और sensor
एक अनिवार्य पैरामीटर के रूप में है कि के लिए डिजाइनिंग हूँ। एक वैकल्पिक पैरामीटर language
भी है।
प्रत्येक सेवा में अनिवार्य और वैकल्पिक पैरामीटर का सेट होता है। जियोकोड सेवा में दो वैकल्पिक पैरामीटर होते हैं, bounds
और region
। इसमें परस्पर अनन्य अनिवार्य पैरामीटर भी हैं, address
या location
, जो सेवा के प्रकार (क्रमशः प्रत्यक्ष या रिवर्स जियोकोडिंग) निर्दिष्ट करते हैं। मैं नए बच्चों के वर्गों के साथ इस पारस्परिक बहिष्कार का प्रतिनिधित्व करता हूं।
मैं जैसे वर्ग पदानुक्रम की कल्पना:
.-----.
| Url |
'-----'
^
|
.---------.
| Request |
'---------'
^
|----------------------------+--------------...
.---------. .------------.
| Geocode | | Directions |
'---------' '------------'
^ ^
|------------+ .
.--------. .---------. .
| Direct | | Reverse | .
'--------' '---------'
फिर, मैं की तरह कुछ करना चाहते हैं निम्नलिखित:
String output = "xml";
boolean sensor = true;
String address = "Av. Paulista, São Paulo, Brasil";
Bounds bounds = new Bounds(-20, -10, -25, -20); //Geographic rectangle
String region = "br";
String lang = "pt-BR";
Coord location = new Coord(-12,-22);
DirectGeocodeRequestUrl direct =
new DirectGeocodeRequestUrl.Builder(output, sensor, address)
.bounds(bounds)
.language(lang)
.build();
ReverseGeocodeRequestUrl reverse =
new ReverseGeocodeRequestUrl.Builder(output, sensor, location)
.language(lang)
.region(region)
.build();
मैं एक बिल्डर से तर्क और तरीकों का उपयोग करता है बना सकते हैं कैसे कक्षा और सुपरक्लास जिसमें इसे डाला जाता है?
ठोस वर्गों में 'getThis()' के ओवरराइड कार्यान्वयन को सार नहीं होना चाहिए। – Eric
@EricTobias आप सही हैं, कॉपी-पेस्ट का खतरा है। फिक्स्ड। –
यह आश्चर्यजनक है! ठीक वही जो मेरे द्वारा खोजा जा रहा था! – Maddy