मेरे पास समान कार्यों के साथ कक्षाओं का एक सेट है लेकिन विभिन्न तर्क के साथ। हालांकि, प्रत्येक वर्ग समारोह कई वस्तुओं को वापस कर सकता है। रिटर्न प्रकार को इंटरफ़ेस के रूप में सेट करना सुरक्षित है?क्या यह रिटर्न प्रकार के रूप में एक इंटरफ़ेस रखने की सलाह दी जाती है?
प्रत्येक वर्ग (सभी एक ही इंटरफेस का उपयोग कर) यह विभिन्न व्यावसायिक तर्क के साथ कर रहा है।
protected IMessage validateReturnType; <-- This is in an abstract class
public bool IsValid() <-- This is in an abstract class
{
return (validateReturnType.GetType() == typeof(Success));
}
public IMessage Validate()
{
if (name.Length < 5)
{
validateReturnType = new Error("Name must be 5 characters or greater.");
}
else
{
validateReturnType = new Success("Name is valid.");
}
return validateReturnType;
}
क्या किसी फ़ंक्शन के रिटर्न प्रकार इकाई परीक्षण के साथ कोई नुकसान है? साथ ही, क्या उन्हें सफल होने के लिए चलाने के लिए आवश्यक कार्यों के लिए खराब डिजाइन माना जाता है? इस उदाहरण में, मान्य() को IsValid() से पहले चलाना होगा या अन्यथा IsValid() हमेशा झूठी वापसी करेगा।
धन्यवाद।
+1, और सॉकेट उदाहरण। मैंने बहुत सारे सॉकेट रैपर किए हैं, और राज्य दर्द हैं। – dlras2
वैधता() को अंतिम बार बुलाया जाने के बाद से ऑब्जेक्ट कॉल वैलिडेट() के लिए यह एक आम आम पैटर्न भी है। वस्तु को गंदे चिह्नित करने के कई तरीके हैं (पुनर्मूल्यांकन की आवश्यकता है)। मेरा समर्थन है कि मैं अपने डोमेन ऑब्जेक्ट्स पर इंगित करें IotifyProperty को लागू करना। –
+1 कम राज्य के सामान्य नियम के लिए, मैं –