2010-09-04 34 views
6

हम कन्स्ट्रक्टर के भीतर अलग-अलग निर्माण कदम क्यों नहीं कर सकते हैं। यदि बिल्ड चरण तर्क लेते हैं तो उन्हें कन्स्ट्रक्टर के लिए तर्क के रूप में क्यों प्रदान नहीं किया जा सकता है और ऑब्जेक्ट बनाने के लिए कन्स्ट्रक्टर के भीतर उपयोग किया जा सकता है।कक्षा के ऑब्जेक्ट में तर्क के साथ निर्माता के मुकाबले बिल्डर पैटर्न बेहतर क्यों है?

AFAIK, बिल्डर पैटर्न में, क्लाइंट जो विशिष्ट ऑब्जेक्ट बनाने के लिए; तो कक्षा के ऑब्जेक्ट में तर्क के साथ एक निर्माता के बजाय एक निर्माता का उपयोग करने में क्या फायदा है?

उत्तर

5

ओह! मैं समझ गया। मैं विकिपीडिया उदाहरण देख रहा था और महसूस किया कि बिल्डर क्यों सहायक है। यह सहायक होता है, जब ग्राहक नहीं जानता कि कौन से तर्क कन्स्ट्रक्टर को पास करना है क्योंकि यह बहुत जटिल है और इसलिए निर्माता को सीधे कॉल नहीं कर सकता है और ऑब्जेक्ट प्राप्त नहीं कर सकता है। नतीजतन, वह कंक्रीट बिल्डर्स से मदद मांगता है जो जानता है कि रचनाकारों को क्या तर्क देना है और इसलिए ऑब्जेक्ट बनाया गया है।

असल में, यदि क्लाइंट वह है जो क्लास के निर्माता के लिए तर्क पारित करने जा रहा है जिसका ऑब्जेक्ट बनाया गया है, तो बिल्डर सहायक नहीं है। प्रोटोटाइप का उपयोग करना शायद बेहतर है। दूसरी तरफ, यदि विशिष्ट वस्तुओं का एक छोटा परिमित सेट होता है जिसे कक्षा से बनाया जा सकता है जिसे उस वर्ग में कन्स्ट्रक्टर (या कॉलिंग सेटर्स) के लिए तर्क पारित किया जा सकता है और यदि वे अक्सर उपयोग किए जाते हैं, तो यह बेहतर होता है बिल्डर वर्ग में इस तर्क को गुजरने के लिए और उनके लिए ऑब्जेक्ट्स बनाने के लिए उनका उपयोग करें।