फॉर-केस एंटीपैटर्न क्या है?


17

आज का TDWTF लेख लेखक के एक बयान से शुरू होता है:

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

उसके बाद वह आगे बढ़ता है जैसे कि पाठक, स्वाभाविक रूप से, जानता है कि फॉर-केस एंटी-पैटर्न बिना किसी और स्पष्टीकरण के आवश्यक है।

लेकिन मैं नहीं! मैंने रेमी के बारे में बात करने वाले "लेखों का विवरण" नहीं देखा है, और एकमात्र महत्वपूर्ण संदर्भ जो मुझे Google पर मिल सकता है (रेमी के लेख के अलावा) रेमंड चेन द्वारा ब्लॉग पोस्ट के लिए है, अगर यह एंटीपैटर्न के बारे में है , जो स्पष्ट रूप से संबंधित है । हालांकि, वह "फॉर-केस एंटी-पैटर्न" को परिभाषित नहीं करता है।

यह "फॉर-केस एंटी-पैटर्न" क्या है जो ये लोग बात कर रहे हैं, और क्या यह एक एंटी-पैटर्न बनाता है?



3
इसे आमतौर पर (और खोज इंजन के माध्यम से खोजने में आसान) लूप-स्विच विरोधी पैटर्न के
डेविड अरनो

जवाबों:


23

"पैटर्न" पहले के डेली डब्ल्यूटीएफ लेख में पेश किया गया था मूल विचार यह है कि आपके पास इसके अंदर एक forलूप है caseजो forलूप इंडेक्स चर पर आधारित है ।

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


0

इसे बहुत सरलता से कहने के लिए, आप दो अलग-अलग प्रवाह नियंत्रण विधियों का चयन कर रहे हैं, जिससे कोड को समझना कठिन हो जाता है।

यदि आप लूप के लिए देखते हैं, तो आप आमतौर पर मान लेते हैं कि लूप की स्थिति लूप के भीतर तर्क को नियंत्रित करेगी। लेकिन अगर आप अपने पूरे तर्क के साथ एक पूरे मामले के बयान को घोंसला बनाते हैं, तो वह खिड़की से बाहर चला जाता है।


1
दो नियंत्रण प्रवाह संरचनाओं के साथ स्वाभाविक रूप से कुछ भी गलत नहीं है। कभी-कभी आपको जरूरत पड़ती है। लेकिन इस मामले में यह बेकार है।
मोनिका

"जो कोड को समझने में कठिन बनाता है।" लड़का है, जो कभी दिन / महीने / वर्ष की समझ है।
पीटर रोवेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.