


जावा में अंडरबिल्डर क्या हैं?
अंडरबिल्डर एक ऐसा वर्ग है जो एक विशिष्ट प्रकार के लिए बिल्डर का डिफ़ॉल्ट कार्यान्वयन प्रदान करता है। दूसरे शब्दों में, यह एक बिल्डर है जो एक विशिष्ट प्रकार के उदाहरण बनाता है। उदाहरण के लिए, मान लें कि आपके पास `कार` नामक एक क्लास है और आप इसके लिए एक बिल्डर प्रदान करना चाहते हैं। आप एक अंडरबिल्डर को इस तरह परिभाषित कर सकते हैं:
```
क्लास कारबिल्डर: बिल्डर<कार> {
// कैरे निजी संस्करण रंग के गुणों के लिए डिफ़ॉल्ट मान परिभाषित करें: स्ट्रिंग = "लाल"
निजी संस्करण मेक: स्ट्रिंग = "टोयोटा "
निजी var मॉडल: स्ट्रिंग = "कोरोला"
निजी var वर्ष: Int = 2015
// बिल्डर विधियों को परिभाषित करें जिन्हें रंग (रंग: स्ट्रिंग) के साथ गुणों को मज़ेदार सेट करने के लिए बुलाया जा सकता है: कारबिल्डर {
this.color = color
वापसी this
}
fun withMake(make: String): CarBuilder {
this.make = make
return this
}
fun withModel(model: String): CarBuilder {
this.model = model
return this
}
fun withYear(year: Int) : कारबिल्डर {
यह.वर्ष = वर्ष
इसे लौटाएं }
// कार उदाहरण बनाने की विधि को परिभाषित करें
ओवरराइड फन बिल्ड(): कार {
वापसी कार(रंग, निर्माण, मॉडल, वर्ष)
}
}
`` `
इस उदाहरण में, `कारबिल्डर` वर्ग `कार` वर्ग के लिए एक अंडरबिल्डर है। यह बिल्डर का एक डिफ़ॉल्ट कार्यान्वयन प्रदान करता है जिसका उपयोग `कार` के उदाहरण बनाने के लिए किया जा सकता है। `withColor`, `withMake`, `withModel`, और `withYear` विधियां आपको `Car` उदाहरण के गुणों को सेट करने की अनुमति देती हैं, और `build` विधि का उपयोग वास्तव में `Car` उदाहरण बनाने के लिए किया जाता है।
अंडरबिल्डर हैं तब उपयोगी होता है जब आप किसी विशिष्ट प्रकार के लिए किसी बिल्डर का डिफ़ॉल्ट कार्यान्वयन प्रदान करना चाहते हैं, लेकिन आप अन्य बिल्डरों को उस कार्यान्वयन को विस्तारित या संशोधित करने की अनुमति भी देना चाहते हैं। उदाहरण के लिए, आपके पास एक बेस बिल्डर हो सकता है जो संपत्तियों का डिफ़ॉल्ट कार्यान्वयन प्रदान करता है, और फिर अन्य बिल्डर अतिरिक्त संपत्तियों को जोड़ने या मौजूदा को संशोधित करने के लिए उस बेस बिल्डर का विस्तार कर सकते हैं।



