मान लीजिए कि मेरे पास इस तरह की लंबी विधि है:
public void SomeLongMethod()
{
// Some task #1
...
// Some task #2
...
}
इस विधि में कोई दोहराव वाले हिस्से नहीं हैं जिन्हें अलग विधि या स्थानीय फ़ंक्शन में ले जाना चाहिए।
कई लोग हैं (मेरे सहित) जो सोचते हैं कि लंबी विधियाँ कोड गंध हैं। इसके अलावा, मुझे #region
यहाँ उपयोग करने का विचार पसंद नहीं है और यह समझाने के लिए एक बहुत ही लोकप्रिय उत्तर है कि यह खराब क्यों है ।
लेकिन अगर मैं इस कोड को तरीकों में अलग करता हूं
public void SomeLongMethod()
{
Task1();
Task2();
}
private void Task1()
{
// Some task #1
...
}
private void Task2()
{
// Some task #1
...
}
मैं निम्नलिखित मुद्दों को देखता हूं:
प्रदूषण की वर्ग परिभाषा का दायरा उन परिभाषाओं के साथ है जो आंतरिक रूप से एक ही विधि द्वारा उपयोग किए जाते हैं और जिसका अर्थ है कि मुझे कहीं
Task1
और दस्तावेज़ करना चाहिए औरTask2
केवलSomeLongMethod
(या मेरे कोड को पढ़ने वाले प्रत्येक व्यक्ति को इस विचार को समझना होगा) के आंतरिक के लिए अभिप्रेत है ।प्रदूषणकारी IDE स्वतः पूर्ण (उदा। तरीके) जो एकल
SomeLongMethod
विधि के अंदर केवल एक बार उपयोग किया जाएगा ।
इसलिए अगर मैं इस विधि कोड को स्थानीय कार्यों में अलग करता हूं
public void SomeLongMethod()
{
Task1();
Task2();
void Task1()
{
// Some task #1
...
}
void Task2()
{
// Some task #1
...
}
}
तब इसमें अलग-अलग विधियों की कमियां नहीं होती हैं, लेकिन यह मूल विधि की तुलना में बेहतर (कम से कम मेरे लिए) नहीं दिखता है।
आपके लिए कौन सा संस्करण SomeLongMethod
अधिक सुपाच्य और पठनीय है और क्यों?