मैं एक अच्छा एक बिल्डर पैटर्न (सी # में) के उदाहरण के लिए ध्यान दिया है, लेकिन एक नहीं मिल सकता है, क्योंकि या तो मैं बिल्डर पैटर्न समझ में नहीं आता या मैं कुछ है कि था ऐसा करने के लिए कोशिश कर रहा हूँ कभी इरादा नहीं उदाहरण के लिए, यदि मेरे पास कार पार्ट्स बनाने के लिए एक अमूर्त ऑटोमोबाइल और अमूर्त बिल्डर विधियां हैं, तो मुझे अपने सभी 30 विकल्पों को निदेशक को भेजने में सक्षम होना चाहिए, क्या मुझे आवश्यक टुकड़े बनाना है, फिर मेरी ऑटोमोबाइल बनाएं। भले ही कौन सी कार, ट्रक, अर्ध, आदि का उत्पादन किया गया हो, मैं इसे उसी तरह से "ड्राइव" करने में सक्षम होना चाहिए।डिजाइन पैटर्न: बिल्डर
पहली समस्या कंक्रीट भागों में हार्ड कोड संपत्ति मानों के अधिकांश उदाहरण हैं, जो मुझे लगता है कि मुझे वास्तव में डेटाबेस से आना चाहिए। मैंने सोचा था कि विचार निदेशक (डेटा स्रोत से) को मेरे विकल्प भेजना था और निर्माता मेरे डेटा के आधार पर एक अनुकूलित उत्पाद तैयार करना था।
दूसरी समस्या यह है कि मैं वास्तव में भागों को बनाने के लिए निर्माता विधियों को चाहता हूं, फिर उन्हें उत्पाद को असाइन करें, तारों को पार न करें लेकिन असली दृढ़ता से उत्पाद भागों को टाइप करें।
उदाहरण के लिए, मैं एक लेबल, एक इनपुट अनुभाग, सत्यापन आदि सहित मेरे लिए बिल्डर निर्माण फार्म फ़ील्ड करके फ्लाई पर एक फॉर्म बनाना चाहता हूं। इस तरह से मैं अपने ओआरएम से ऑब्जेक्ट पढ़ सकता हूं, चेक ऑब्जेक्ट के मेटाडेटा को बाहर करें, इसे मेरे बिल्डर को पास करें और नए वेब उपयोगकर्ता नियंत्रण परिणाम को मेरे वेब फॉर्म में जोड़ें।
हालांकि, प्रत्येक बिल्डर उदाहरण में मुझे मुख्य कोड से बिल्डर तक विकल्पों को पारित करने और अनुकूलित उत्पाद को लात मारने के बजाय केवल हार्ड कोड डेटा मिलता है। सब कुछ एक बड़ा स्थैतिक मामला बयान प्रतीत होता है। उदाहरण के लिए, यदि मेरे पास प्रत्येक 10 विकल्प के साथ तीन पैरामीटर हैं, तो मैं 30 कंक्रीट बिल्डर विधियों का निर्माण नहीं करना चाहता, मैं केवल अपने उत्पाद की आवश्यकता वाले गुणों का निर्माण करने के लिए पर्याप्त बनाना चाहता हूं, जो केवल तीन हो सकते हैं।
मुझे लगता है कि निदेशक केवल मुख्य कोड में मौजूद है। पैटर्न के भीतर केस स्टेटमेंट का उपयोग करने के बजाय स्वचालित रूप से यह निर्धारित करने का एक तरीका होना चाहिए कि कौन सी ठोस बिल्डर विधि पॉलिमॉर्फिज्म और विधि ओवरलोड (हालांकि यह एक बहुत बुरा उदाहरण है) के समान कॉल करने के लिए कॉल करें। (हर बार मुझे एक नया उत्पाद प्रकार जोड़ने की ज़रूरत है, मुझे मौजूदा निदेशक को संशोधित करने की आवश्यकता होगी, जो खराब है)।
शायद, निर्माता पैटर्न में क्या गुम है, यह है कि ऑब्जेक्ट्स अंत में नष्ट नहीं होते हैं, इसलिए यदि आप पैटर्न को अनजान करते हैं तो मैं इसे बाद में जोड़ने का सुझाव देता हूं ... – Tobias
वास्तव में आप जो चाहते हैं, लेकिन जांचें ये लेख:
[पैटर्न विवरण] (http://sourcemaking.com/design_patterns/builder)
[सी # कार्यान्वयन नमूना] (http://sourcemaking.com/design_patterns/builder/c%2523)
आशा है कि यह आशा है मदद करता है. – 0x49D1