मुझे लगता है कि 'एकल निकास बिंदु' अतिरंजित है। इसके लिए चिपके हुए भी बहुत ही जटिल कोड का कारण बन सकते हैं, जो वास्तव में एकाधिक निकास बिंदु होनी चाहिए, या छोटे तरीकों से विभाजित होनी चाहिए।
मैं कहूंगा कि दोनों के बीच चुनाव अर्थशास्त्र पर निर्भर करता है।
'अगर कुछ हालत सच है तो ऐसा करें, अन्यथा ऐसा करें' नक्शे को पूरी तरह से करें।
if (isLoggedIn) {
RedirectToContent();
} else {
RedirectToLogin();
}
'कुछ हालत फिर कुछ सफाई करते हैं और जमानत तो' कोड 2. पर बेहतर नक्शे यह गार्ड पैटर्न कहा जाता है। यह कोड के शरीर को यथासंभव अनावश्यक इंडेंटेशन द्वारा सामान्य, स्पष्ट और अव्यवस्थित के रूप में छोड़ देता है। इसका उपयोग आमतौर पर पैरामीटर या राज्य को सत्यापित करने के लिए किया जाता है (जांचें कि कुछ शून्य है या कुछ कैश किया गया है, ऐसी चीजें हैं)।
if (user == null) {
RedirectToLogin();
return;
}
DisplayHelloMessage(user.Name);
एक ही प्रोजेक्ट में उपयोग किए जाने वाले दोनों रूपों को देखना असामान्य नहीं है। जिसका उपयोग करना है, जैसा कि मैं कहता हूं, जो आप व्यक्त करने की कोशिश कर रहे हैं उस पर निर्भर करता है।
महान सवाल, मैंने एक प्रश्न नहीं देखा है कि दो अलग-अलग दृष्टिकोणों के बीच इस तरह के घनिष्ठ प्रतियोगिता को उकसाया गया है। – Fenton