में बराबर विधि को ओवरराइड करना डीटीओ में बराबर और हैशकोड विधियों को ओवरराइड करना आवश्यक है? क्योंकि डीटीओ का उपयोग केवल स्थानांतरण डेटा के लिए किया जाता है। क्या इसके बारे में कोई सर्वोत्तम अभ्यास या कुछ है?डीटीओ के
धन्यवाद।
में बराबर विधि को ओवरराइड करना डीटीओ में बराबर और हैशकोड विधियों को ओवरराइड करना आवश्यक है? क्योंकि डीटीओ का उपयोग केवल स्थानांतरण डेटा के लिए किया जाता है। क्या इसके बारे में कोई सर्वोत्तम अभ्यास या कुछ है?डीटीओ के
धन्यवाद।
This article सलाह से एक टुकड़ा प्रदान करता है:
वस्तुओं एक सूची, सेट, या मानचित्र (या तो एक कुंजी या मान के रूप में) में रखा बराबर का एक उपयुक्त परिभाषा होनी चाहिए।
निश्चित रूप से DTOs से सिर्फ हस्तांतरण और अधिक के लिए इस्तेमाल कर रहे हैं, हम उन्हें रहते हो उन्हें सॉर्ट, उन्हें कैश ...
व्यवहार में लोगों को बराबरी और हैश प्रदान करते हैं? हमेशा नहीं। क्या हमें? मुझे ऐसा लगता है।
चाहे आप अपने डीटीओ कक्षाओं के लिए equals
और hashcode
कार्यान्वयन प्रदान करने की आवश्यकता है या नहीं, इस पर निर्भर करता है कि आप उनका उपयोग कैसे करते हैं।
यदि आप उन्हें एक या अधिक संग्रहों के साथ उपयोग करते हैं, तो आपको उचित विधि के लिए कार्यान्वयन प्रदान करना चाहिए। लगभग सभी संग्रह वे स्टोर किए गए ऑब्जेक्ट्स पर equals
पर कॉल करते हैं। हैश टेबल आधारित संग्रह HashSet
और HashMap
कॉल hashcode
पर कॉल करें, जबकि क्रमबद्ध संग्रह TreeSet
और TreeMap
के अलावा compareTo
विधि को क्रमबद्ध करें।
अगर यह बहुत तुच्छ मैं lombok एनोटेशन http://projectlombok.org/features/
का उपयोग कर की सिफारिश कर सकते हो जाता है डेटा केंद्रित "वर्ग है जो डेटाबेस रिकॉर्ड करने के लिए नक्शे" DTOs डेटाबेस रिकॉर्ड के मैप की जाती हैं "यह के लिए विशेष रूप से सच है"? मुझे लगता है कि आपकी संस्थाएं/पीओजेओ होंगे, जबकि डीटीओ केवल डेटा हस्तांतरण के लिए हैं और इसमें कोई भी तर्क नहीं होना चाहिए। –
तर्क और तर्क है ... यदि आप डीटीओ को संग्रह में रखने जा रहे हैं तो हैश और बराबर की आवश्यकता होने की संभावना है। यह गंभीर व्यापार तर्क जोड़ने का मतलब नहीं है। स्पष्टीकरण के लिए – djna
धन्यवाद। –