5

बनाया जा रहा वस्तुओं की संख्या मैं कुछ सरल सत्यापन सामग्री के लिए कुछ धाराप्रवाह इंटरफेस बनाने की प्रक्रिया में हूं जिसके साथ मैं खेल रहा हूं। एक बात जो मैंने देखी है वह यह है कि मेरे पास कई अलग-अलग वस्तुएं बनाई जा रही हैं।फ्लुएंट इंटरफेस -

उदाहरण के लिए

नीचे बयान दिए: '।'

Check.Assertion.ForValue.That(value, "value").IsNotNull() : void 

Check.Assertion.ForArgument.That(value, "value").IsNotNull() : void 

Validate.Assertion.ForDate.That("Test").IsNotNull() : bool 

Validate.Assertion.ForNumeric.That("Test").IsNotNull() : bool 
हर के लिए

(अंतिम के लिए स्वीकार करें) मैं एक वस्तु को नया कर रहा हूं। अगर मैं यहां एक धाराप्रवाह इंटरफ़ेस का उपयोग नहीं कर रहा था तो मैंने केवल स्थिर तरीकों का उपयोग किया होगा।

मैं क्या सोच रहा हूं कि अगर किसी को पता है कि इस तरह के उदाहरण वस्तुओं (नोट वे बहुत छोटी वस्तुएं हैं) स्थिर विधियों के साथ काम करने के लिए प्रदर्शन के दौरान प्रदर्शन में कोई वास्तविक अंतर देखेंगे।

चीयर्स एंथोनी

उत्तर

9

ध्यान दें कि आप जरूरी हर जगह नई वस्तुओं का निर्माण करने की जरूरत नहीं है। आप इंटरफेस के माध्यम से अधिकांश धाराप्रवाह इंटरफ़ेस को हल कर सकते हैं, और केवल एक ऑब्जेक्ट पर कई इंटरफ़ेस लागू कर सकते हैं। उस स्थिति में आप बस एक नए इंटरफ़ेस के माध्यम से this वापस कर सकते हैं।

उदाहरण:

public interface ICheckAssertionForValue 
{ 
    ICheckAssertionForValueThat That(Object value, String name); 
} 

public interface ICheckAssertion 
{ 
    ICheckAssertionForValue ForValue { get; } 
} 

public class Check : ICheckAssertion 
{ 
    public static ICheckAssertion Assertion 
    { 
     get { return new Check(); } 
    } 

    ICheckAssertionForValue ICheckAssertion.ForValue 
    { 
     get { return this; } // <-- no new object here 
    } 

    ICheckAssertionForValueThat ICheckAssertionForValue.That(Object value, String name) 
    { 
     return new SomeOtherObject(value, name); 
    } 
} 
+0

अरे शांत मुझे लगता है कि नहीं सोचा था ... बस एक त्वरित बात है जहाँ हम यही कारण है कि विधि के भीतर एक नया SomeOtherObject वस्तु लौट रहे हैं, हम लागू करने के लिए चेक नहीं मिल सकता है ICheckAssertionForValueThat इंटरफ़ेस और बस इसे फिर से वापस करें? मुझे लगता है कि एक धाराप्रवाह इंटरफेस डिजाइन करते समय यह एक वर्ग में कितनी ज़िम्मेदारी लेनी चाहिए। शायद जवाब यह है कि, अगर मैं इसे स्पष्ट रूप से नहीं कर रहा था तो यह सब एक ही कक्षा में होगा ... आपको क्या लगता है? –

+0

या क्या मैं नई वस्तुओं को बनाने के बारे में बहुत ज्यादा चिंता कर रहा हूं ?? एकमात्र बात यह है कि मैं इस इंटरफ़ेस का उपयोग बहुत दूर करूँगा (यानी यह जांचने के लिए कि विभिन्न तरीकों पर पैराम शून्य हैं और यदि अपवाद फेंक रहे हैं) –

संबंधित मुद्दे