यह कितना बुरा है? मैंने अनगिनत लेख पढ़े हैं और पहले कभी व्यवहार के साथ अमूर्त डेटाकंट्रैक्ट नहीं बनाए हैं, लेकिन ऐसा लगता है कि ऐसा करने से मुझे एक समस्या हल हो जाएगी जो मुझे सबक्लस कार्यान्वयन निर्धारित करने के लिए हर जगह कारखानों को बनाने से रोक देगा। मेरा सवाल है, अगर मैं अपने डेटा अनुबंधों में व्यवहार जोड़ने का फैसला करता हूं तो क्या मुझे दंडित किया जाएगा? निस्संदेह उन्हें उपभोग नहीं किया जा सकता है और रिपॉजिटरी कॉल का आविष्कार करने से पहले उस सबक्लास प्रकार के लिए विशिष्ट कुछ संचालन करने के लिए हैं और डेटा जारी है। मैं प्रत्येक सबक्लास के लिए "प्रबंधक" कक्षाएं बना सकता हूं लेकिन यह मुझे कारखानों में वापस रखता है और मैं एक और बहुलक दृष्टिकोण की कोशिश कर रहा हूं। अग्रिम में धन्यवाद।व्यवहार के साथ डेटाकंट्रैक्ट
उत्तर
क्यों आप क्लासिक फैशन में अपना डेटा अनुबंध (MyDataContract) नहीं बना सकते हैं, केवल डेटा फ़ील्ड, और कुछ नहीं, और फिर अपनी व्यवहार कक्षा प्राप्त कर सकते हैं?
public class BehaviorialClass : MyDataContract
{
.....
}
इस तरह, आप चिंताओं का एक अच्छा, स्वच्छ जुदाई है, अपने डेटा अनुबंध व्यवहार यह वास्तव में वैसे भी साथ सौदा नहीं कर सकते द्वारा "प्रदूषित" नहीं है .....
मार्क
सीधे आपके डेटाकंट्रैक्ट्स में व्यवहार डालने के लिए एक अच्छा समझौता व्यवहारों को extension methods के रूप में या तो आपके अनुबंध या एक अलग असेंबली के समान असेंबली में परिभाषित करेगा। वैकल्पिक रूप से, डेटा और व्यवहार को अलग करने के लिए अनुबंध विधियों को अनुबंधों से अलग नामस्थान में रखा जा सकता है।
इस तरह आपके अनुबंध साफ रखा जाता है लेकिन साथ ही, आपके अनुबंधों के .NET उपभोक्ताओं के पास उन डेटाकंट्रैक्ट्स से संबंधित अतिरिक्त कार्यक्षमता आयात करने का एक आसान तरीका होगा।
आप अपने डेटा अनुबंधों के लिए इच्छित सभी व्यवहार जोड़ सकते हैं। आपको स्पष्ट रूप से इस तथ्य को दस्तावेज करना चाहिए कि व्यवहार ग्राहकों को दिखाई नहीं देगा, या कोई बाद में निराश होगा। इस तथ्य को भी दस्तावेज करें कि किसी भी कार्यान्वयन-निर्भर डेटा को डेटा अनुबंध में जोड़ने के लिए सावधानी बरतनी चाहिए, क्योंकि यह कुछ भी नहीं है जिसे आप ग्राहकों को पास करना चाहते हैं।
सब कुछ, मुझे लगता है कि डेटा आंकड़ों को डेटा अनुबंध होने और उनके व्यवहार को छोड़ने के लिए बेहतर होगा।
किसी बिंदु पर आप सदस्य वारक्लोन का उपयोग करना चाहते हैं और अनावश्यक मध्यस्थ डेटा अनुवाद (और इससे भी बदतर, अनावश्यक रखरखाव) के बिना इंटरफेस को कार्यान्वित करना चाहते हैं। एक्सटेंशन विधियां तब होती हैं जब आप शब्द की परिभाषा पर शाब्दिक रूप से कोई नियंत्रण नहीं रखते हैं लेकिन फिर भी ऑब्जेक्ट उन्मुख प्रवाह की आवश्यकता होती है; वे किसी भी अन्य परिस्थिति में व्यस्त काम जोड़ते हैं और सी/सी ++ से भी बदतर वर्ग परिभाषाओं को बिखराते हैं। "प्रवृत्तियों" को बकवास करें और जो भी आपके लिए काम करता है, आप केवल एक पैटर्न खोज सकते हैं जो पूरे बॉलगेम को बदलता है (जैसे जेफरी रिचटर के असिनक्यूमेरेटर)।
- 1. डेटाकंट्रैक्ट अपवाद।
- 2. मैं डेटाकंट्रैक्ट
- 3. डेटाकंट्रैक्ट और विरासत?
- 4. साझा [डेटाकंट्रैक्ट] वर्ग
- 5. डेटाकंट्रैक्ट सीरियलाइज़र मेटाडाटा
- 6. औसत() के साथ अजीब व्यवहार?
- 7. डब्ल्यूसीएफ डाटाकंट्रैक्ट बनाम डेटाकंट्रैक्ट इंटरफेस
- 8. असंगत "लोडरर" व्यवहार 'lib' नेमस्पेसिंग/ऑटोलोडिंग के साथ व्यवहार
- 9. सिंक्रनाइज़ कथन के साथ पुनर्वित्त सिंक्रनाइज़ेशन व्यवहार
- 10. विरासत के साथ स्थैतिक चर का व्यवहार
- 11. std :: सॉर्ट्स के साथ सॉर्ट व्यवहार
- 12. जीसीसी के साथ अजीब पूर्णांक व्यवहार -O2
- 13. mediaplayer के साथ अजीब व्यवहार और तलाश
- 14. अजीब जावा व्यवहार आदिम प्रकारों के साथ
- 15. जावा स्ट्रिंग्स के साथ अजीब व्यवहार
- 16. माइक्रोसॉफ्ट के साथ अजीब व्यवहार। WindowsCE.Forms
- 17. तर्क के साथ अप्रत्याशित व्यवहार डिफ़ॉल्ट
- 18. एंड्रॉइड ओरिएंटेशन सेंसर के साथ अजीब व्यवहार
- 19. डेटाकंट्रैक्ट में डिफ़ॉल्ट मान सेट करें?
- 20. डब्ल्यूसीएफ में डेटाकंट्रैक्ट का क्या मतलब है?
- 21. कार्य बदलने के मूल्यों के साथ तर्क पास करना - व्यवहार?
- 22. Grails सेवा व्यवहार व्यवहार
- 23. क्या किसी ने डेटाकंट्रैक्ट परीक्षण उपकरण बनाया है?
- 24. व्यवहार
- 25. व्यवहार
- 26. व्यवहार
- 27. व्यवहार
- 28. व्यवहार
- 29. डेटाकंट्रैक्ट में नाम और नामस्थान जोड़ना क्या करता है?
- 30. सभी वर्गों पर प्रदर्शन [डेटाकंट्रैक्ट] और [डेटामेम्बर] जोड़ता है
'मुझे लगता है कि डेटा आंकड़ों को डेटा अनुबंध होने और उनके व्यवहार को छोड़ने के लिए बेहतर होगा।' उसमें आओ! –