कई मामलों में मैं वास्तव में धाराप्रवाह इंटरफेस के विचार को पसंद करता हूं, लेकिन सी # की सभी आधुनिक विशेषताओं के साथ (शुरुआती, लैम्ब्डा, पैरामीटर नाम) मैं खुद को सोचता हूं, "क्या यह इसके लायक है?", और "क्या यह सही पैटर्न है?" उपयोग?"। कोई मुझे दे सकता है, अगर एक स्वीकृत अभ्यास नहीं है, तो कम से कम अपने स्वयं के अनुभव या निर्णय मैट्रिक्स के लिए जब धाराप्रवाह पैटर्न का उपयोग करना है?
निष्कर्ष:
अब तक के जवाबों से अंगूठे के कुछ अच्छे नियम:
- जब आप कॉलर्स से अधिक कार्य करते हैं, तो फ़्लॉंट इंटरफेस बहुत मदद करते हैं, क्योंकि कॉल्स पास-थ्रू संदर्भ से अधिक लाभान्वित होते हैं।
- धाराप्रवाह इंटरफेस को एपी के शीर्ष पर एक परत के रूप में सोचा जाना चाहिए, न कि उपयोग का एकमात्र साधन।
- लैम्ब्डा, इनिशियलाइज़र और नामित पैरामीटर जैसी आधुनिक विशेषताएं धाराप्रवाह इंटरफ़ेस को और अधिक अनुकूल बनाने के लिए हाथ से काम कर सकती हैं।
यहाँ इसका एक उदाहरण है कि आधुनिक सुविधाओं से मेरा मतलब है कि इसकी आवश्यकता कम महसूस होती है। उदाहरण के लिए ले लो (शायद खराब उदाहरण) धाराप्रवाह इंटरफ़ेस जो मुझे एक कर्मचारी बनाने की अनुमति देता है जैसे:
Employees.CreateNew().WithFirstName("Peter")
.WithLastName("Gibbons")
.WithManager()
.WithFirstName("Bill")
.WithLastName("Lumbergh")
.WithTitle("Manager")
.WithDepartment("Y2K");
आसानी से शुरुआती के साथ लिखा जा सकता है जैसे:
Employees.Add(new Employee()
{
FirstName = "Peter",
LastName = "Gibbons",
Manager = new Employee()
{
FirstName = "Bill",
LastName = "Lumbergh",
Title = "Manager",
Department = "Y2K"
}
});
मैं इस उदाहरण में कंस्ट्रक्टरों में नामित मापदंडों का उपयोग कर सकता था।