2011-01-09 15 views
8

स्पष्ट होने के लिए, यह एक होमवर्क प्रश्न है, इसलिए मैं आपको अपनी राय बताऊंगा। क्या आप मुझे समाधान देने के बजाय मुझे अपनी गलतियों को जान सकते हैं? (क) एक पूर्ण भोजन और (ख) एक आर्थिक भोजन:इस प्रश्न में मैं किस डिजाइन पैटर्न का उपयोग करूंगा?

एक रेस्तरां है कि केवल भोजन के निम्नलिखित दो प्रकार प्रदान करता है मान लें:

यह सवाल है। पूरे भोजन में निम्नलिखित खाद्य पदार्थ होते हैं और निम्नलिखित क्रम में कार्य किया जाता है: 1. एपेटाइज़र 2. पीना 3. मुख्य पकवान 4. मिठाई इस बीच आर्थिक भोजन में निम्नलिखित खाद्य पदार्थ होते हैं और में निम्नलिखित क्रम में कार्य किया जाता है: 1. पीना 2. मुख्य पकवान

सबसे उचित डिजाइन पैटर्न की पहचान करें जिसका उपयोग ग्राहक को को केवल दो प्रकार के भोजन प्रदान करने के लिए आदेश देने के लिए किया जा सकता है और भोजन घटक दिए गए में दिए जाने चाहिए आदेश।

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

आपको क्या लगता है?

+6

मुझे लगता है कि पेय दोनों भोजन में पहले परोसा जाना चाहिए। –

+0

फैक्टरी और इटेटरेटर अच्छा लगता है! मुझे दो निर्मित कारखानों के समग्र के माध्यम से 'पुनरावृत्ति' का मतलब नहीं मिलता है। क्या आप शायद समझा सकते हैं कि आप पूर्ण भोजन तैयार करने के लिए इटेटरेटर का उपयोग कैसे करेंगे (कारखानों और दूसरे भोजन के लिए आर्थिक भोजन को अनदेखा कर रहे हैं)? – Ishtar

+0

मानते हैं कि प्रत्येक आइटम एक वर्ग है और उस वर्ग में किसी विधि द्वारा ग्राहक को सेवा प्रदान की जाती है, तो मैं उन ऑब्जेक्ट्स के माध्यम से पुनरावृत्ति करने के लिए "एपेटाइज़र फिर पीना, ..etc" कैसे कर सकता हूं? –

उत्तर

1

पहली बात जो मन में आता डेकोरेटर पैटर्न इस तरह आप एक भोजन आधार और 2 concreate भोजन FullMeal और EconomicMeal तो बना सकते हैं आप सज्जाकार के रूप में भोजन के घटकों और मिश्रण और उन्हें मेल खाते के रूप में आप की तरह कर सकते हैं ।

+0

मैंने सजावटी पैटर्न के बारे में भी सोचा, और एक वास्तविक दुनिया ऐप में मैं शायद इसका उपयोग करता हूं, लेकिन यह वास्तव में विज्ञापन-प्रसार सुविधा के लिए बनाया गया है, विशेष वर्कफ़्लो/सुविधाओं के मिश्रण को लागू करने के लिए इतना नहीं, जो इस समस्या को हल करता है के लिए कहता है। – Paul

-4

मुझे लगता है कि होमवर्क अच्छी तरह से तैयार नहीं है। जैसा कि यहां उद्धृत किया गया है, मुझे चुनौती दिखाई नहीं दे रही है।

पहचानें ... डिजाइन पैटर्न है कि किया जा सकता है भोजन

मुद्दा क्या है के दो प्रकार से एक का उपयोग केवल क्रम में एक ग्राहक अनुमति देते हैं? बस ग्राहक को 2-विकल्प विकल्प ("choose meal type (1-full, 2-economy): "के साथ प्रस्तुत करें और आप कर चुके हैं। इसके लिए किसी को डिज़ाइन पैटर्न की आवश्यकता क्यों है?

डिज़ाइन पैटर्न प्रोग्रामर/डिजाइनर के लिए एक उपकरण हैं, उपयोगकर्ता नहीं। तो सही (आईएमएचओ) प्रश्न "डिजाइन पैटर्न का प्रस्ताव होना चाहिए जो प्रोग्रामर को ...", उदाहरण के लिए ... ... दिए गए निश्चित डिश प्रकारों के आधार पर भोजन प्रकार को गठबंधन/संशोधित करने के लिए "या कुछ प्रकार का होना चाहिए।

के रूप में कहा गया है, सवाल एक प्रोग्रामिंग/डिजाइन समस्या को परिभाषित नहीं करता, या चुपचाप बहुत ज्यादा हो जाती है।

+1

आप बिंदु खो रहे हैं। यह होमवर्क दूसरे शब्दों में डिजाइन पैटर्न लागू करने के लिए सीखने में सहायता के लिए एक नकली परिदृश्य विकसित किया गया है। – Finglas

+1

@ फ़िंगलास: मुझे हिम्मत है कि आप ** ** ** गायब हैं। मैं पूरी तरह से समझता हूं कि यह एक होमवर्क है, और होमवर्क क्या है। मैं कह रहा हूं कि ** यह ** होमवर्क (उद्धृत) प्रोग्रामिंग/डिज़ाइन समस्या को परिभाषित नहीं करता है जिसे डिज़ाइन पैटर्न का उपयोग करके संबोधित करने की आवश्यकता है। या यह ** बहुत निहित ** – davka

+0

माना जाता है कि यह मेरे समाधान लोगों के साथ क्या गलत है? –

1

यह प्रक्रिया दो चरणों में है, जो मुझे लगता है कि जहां भ्रमित कर रहे हैं। मूल बात यह है कि वे कर रहे हैं है पैटर्न की तलाश है आप तर्क का चयन करने के लिए उपयोग करेंगे कि उपयोगकर्ता अपना भोजन ऑर्डर करेगा। वास्तव में वह तर्क क्या करता है, या भोजन का आदेश किस क्रम में किया जाता है वह उस टुकड़े से प्रासंगिक नहीं है।

तो आपके पास आधार भोजन इंटरफ़ेस या अमूर्त वर्ग होगा जिसमें ऑर्डर देने के लिए कोई विधि या विधियां हों (यह नहीं कहती कि भोजन की सेवा करने के क्रम में भोजन का अनुरोध किया जाना चाहिए, या तो, ध्यान दें)। उस भोजन वर्ग में शायद कुछ विधियां होंगी, जिनमें से एक में सेवफूड() या इसी तरह का शामिल है। इसके लिए आपके पास दो ठोस वर्ग होंगे (जैसे फुलमेयल और इकोनोमीमाल), और चूंकि उनका क्रम महत्वहीन नहीं है, इसलिए आप फैक्ट्री का उपयोग करके कार्यान्वित कर सकते हैं।

कंक्रीट कक्षाएं सही क्रम में भोजन की सेवा के लिए जिम्मेदार होंगी जब ServeFood() उन पर बुलाया जाता है।

+0

फॉलो अप के रूप में, यदि आपको भोजन की सेवा करने के तरीके के बारे में भी बात करनी है, तो कंक्रीट कक्षाओं के अंदर, आप शायद एक इटेटरेटर करेंगे। – Paul

+0

यह वही है जो मैं कहने की कोशिश कर रहा था, लेकिन आपने इसे जादुई तरीके से बताया .. अब विचार को बहुत मंजूरी देने के लिए धन्यवाद :) –

+0

यदि आप वास्तव में डिजाइन पैटर्न को गड़बड़ाने का मजेदार तरीका चाहते हैं, तो iyad, आपको जांच करनी चाहिए हेड फर्स्ट डिज़ाइन पैटर्न (http://www.amazon.com/First- डिज़ाइन- पैटर्न- एलिज़ाबेथ- फ्रैमन/डीपी/056007124/ref=sr_1_1?s=books&ie=UTF8&qid=1294587433&sr=1-1)। जबकि गैंग ऑफ फोरमिनल काम है, हेड फर्स्ट दृष्टिकोण * वास्तव में * सुलभ और कुछ सबसे आम लोगों पर शुरू करने के लिए मजेदार है। – Paul

संबंधित मुद्दे