9

क्या डाटा ऑब्जेक्ट ऑब्जेक्ट वैल्यू ऑब्जेक्ट के समान है या वे अलग हैं? यदि वे अलग हैं तो हमें डीटीओ का उपयोग कहां करना चाहिए और हमें वीओ का उपयोग कहां करना चाहिए?क्या डाटा ऑब्जेक्ट ऑब्जेक्ट वैल्यू ऑब्जेक्ट के समान है?

प्रोग्रामिंग भाषा के बारे में हम बात कर रहे हैं जावा और संदर्भ है - वहाँ एक वेब अनुप्रयोग है, जो एक डेटाबेस से डेटा को हासिल करेगा है और फिर इसे संसाधित करता है और अंत में संसाधित जानकारी सामने के अंत

+0

क्या प्रोग्रामिंग भाषा, या अन्य संदर्भ, आपके सवाल में पैदा करता है? – Marcin

+0

प्रोग्रामिंग भाषा जावा और संदर्भ है - वहाँ एक वेब अनुप्रयोग है, जो एक डेटाबेस से डेटा को हासिल करेगा है और फिर इसे संसाधित करता है और अंत में संसाधित जानकारी सामने के अंत – Gaurav

+0

तो आपके सवाल का कि जोड़ने पर प्रदर्शित होता है, और टैग उचित रूप से ; – Marcin

उत्तर

8

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

+0

क्या आप कृपया विस्तृत जानकारी दे सकते हैं "जिसका समानता पहचान पर आधारित नहीं है ", कुछ उदाहरण दे रहे हैं? – Gaurav

+1

मैं कल्पना कर सकता हूं कि इस वाक्य का अर्थ यह होगा कि वीओ को इसके कुछ क्षेत्रों या इसके एक अलग "चित्र" के बजाय सीधे डोमेन इकाई के खिलाफ मानचित्रण करने की आवश्यकता नहीं है। आम तौर पर एक वीओ को डीटीओ के समान समझा जाता है, लेकिन डीटीओ "फील्ड संरचना" (अलग डोमेन वर्गों से कुछ फ़ील्ड) पर अधिक होता है। प्रस्तुति परत में सेवा करने के लिए एक डीटीओ उदाहरण ग्राहक एड्रेस क्लास और ग्राहक वर्ग के फ़ील्ड के बीच एक संरचना हो सकता है। – frandevel

+1

@ गौरव दो मूल्य वस्तुएं बराबर होती हैं जब उनके पास समान मान होते हैं, लेकिन जरूरी नहीं कि एक ही वस्तु हो ... – JuanZe

2

उपयोग एक डीटीओ अपनी सेवाओं की सीमा पर हुई आप सेवा के ग्राहकों को वास्तविक डोमेन वस्तु नहीं भेजना चाहते हैं - इस ग्राहक और सेवा के बीच निर्भरता को कम करने में मदद करता है।

मूल्यों वस्तुओं रहे हैं बस वस्तुओं जिसका समानता पहचान उदा पर आधारित नहीं है java.lang.Integer

DTOs और मूल्य वस्तुओं वास्तव में एक दूसरे के लिए विकल्प नहीं हैं।

2

एक डाटा ट्रांसफर ऑब्जेक्ट एक परत या टियर से दूसरे डेटा के गुच्छा को स्थानांतरित करने के लिए एक क्लज है, लक्ष्य एक ही डेटा संरचना में सामानों का एक गुच्छा पैक करके और आगे भेजकर कॉल की संख्या को कम करना है यह एक साथ कुछ लोग इसका उपयोग भी करते हैं, जैसे Michael points out in his post here, ताकि एक परत द्वारा उपयोग की जाने वाली कक्षाएं इसे कॉल करने वाली परत से अवगत न हों। जब मैं डीटीओ को क्लज के रूप में संदर्भित करता हूं, मेरा मतलब है कि एक सटीक अमूर्त अवधारणा लागू नहीं हो रही है, यह आवेदन परतों के बीच संचार के लिए मदद करने के लिए एक व्यावहारिक कामकाज है।

एक वैल्यू ऑब्जेक्ट ऐसा कुछ है जहां हम केवल monetary amount, दिनांक सीमा या lookup table से कोड के मूल्य में रुचि रखते हैं। इसमें कोई पहचान नहीं है, जिसका अर्थ है कि आप चिंतित नहीं होंगे, अगर उनमें से कई थे, तो इसका ट्रैक रखने के लिए, क्योंकि वे स्वयं में चीजें नहीं हैं।

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

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