डिज़ाइन पैटर्न लागू करने वाले निम्नलिखित वर्गों को डिज़ाइन करते समय सबसे अच्छा तरीका क्या होगा?कार्ड गेम क्लासेस के लिए ओओपी डिज़ाइन
- डेक - addCard, सौदा, फेरबदल, getTopCard, removeTopCard, removeAllCards
- हाथ - addCard, removeCard, getCard, removeAllCards
- DiscardPile - addCard, getTopCard , हटाएं टोपकार्ड, हटाएंअल्कार्ड
- MeldPile - addCard, removeAllCards
(MeldPile तालिका में सभी melds आयोजित करता है।)
मेरे लिए, मुझे लगता है कि getTopCard
और removeTopCard
सिर्फ getCard
और removeCard
का एक आवरण के रूप में, यह सिर्फ कार्ड की शीर्ष स्थिति प्राप्त करता है और इसे getCard
या removeCard
पर पास कर देता है।
क्या मुझे रचना का उपयोग करना चाहिए? रणनीति पैटर्न? या बस कार्डपाइल नामक एक और कक्षा बनाएं और इसे उपरोक्त वर्ग की मूल श्रेणी के रूप में उपयोग करें? अगर आप इस पर नमूना कोड प्रदान कर सकते हैं तो वास्तव में सराहना करें।
सबसे अच्छा तरीका निपटने के तर्क को लागू करता है के लिए होता है सिर्फ लेखन शुरू करने के लिए है गेम नियम और अपने डिजाइन को स्वाभाविक रूप से विकसित करने दें। यदि आपके पास कोई विशिष्ट प्रश्न है उदा। 'मैं एक नियम लागू करने की कोशिश कर रहा हूं, जहां कोई खिलाड़ी कार्ड बजाता है तो दूसरे नाटक को त्यागना चाहिए, मुझे किस पैटर्न का उपयोग करना चाहिए?' यह उत्तरदायी हो सकता है। –
+1 "अपने डिजाइन को स्वाभाविक रूप से विकसित करने दें" – radarbob
उप-परमाणु कण आधार वर्गों में "स्वाभाविक रूप से होने वाली" कक्षाओं को भंग करने से सावधान रहें। कक्षा पदानुक्रमों को अनावश्यक रूप से सामान्य और अनावश्यक प्रसंस्करण के साथ बहुत गहराई मिल सकती है। यदि आप * प्राकृतिक डिजाइन विकास * को अधिक सामान्य आधार के लिए कॉल करते हैं, तो आप हमेशा नई प्रतिक्रिया प्राप्त कर सकते हैं। – radarbob