TL; DR - सेवाओं के बीच POJO लाइब्रेरी साझा करना ठीक है?
आम तौर पर हम सेवाओं के बीच साझेदारी को कड़ाई से सीमित रखना चाहते हैं यदि संभव हो तो कोई भी नहीं। कुछ बहस हुई है कि डेटा साझा करने वाली सेवा ग्राहकों को उपयोग करने के लिए क्लाइंट-लाइब्रेरी प्रदान करनी चाहिए या नहीं। क्लाइंट-लिब आमतौर पर सेवा के एक क्लाइंट के लिए उपयोग करने के लिए वैकल्पिक होता है और वे एपीआई का उपभोग कर सकते हैं, हालांकि वे क्लाइंट-लिब का उपयोग करें, या वैकल्पिक भाषा का उपयोग करें और लाइब्रेरी के सामान्य पहलुओं और इस तरह का उपयोग करें।
मेरे मामले में - मैं एक ऐसी सेवा पर विचार कर रहा हूं जो डेटा का एक उद्देश्य बनाती है। मान लेते हैं कि यह ऑब्जेक्ट पीईटी है। यह डेटाबेस इकाई नहीं है, लेकिन कड़ाई से एक पीओजेओ है जो अंतर्निहित डेटा का स्पष्ट रूप से प्रतिनिधित्व करता है। यह POJO वह है जिसे एपीआई ने परिभाषित किया है। मान लें: पालतू - आयु, वजन, नाम, स्वामी, पता, प्रजाति, आदि।
सेवा 1 - पेटकीपर: यह जो भी कारण के लिए एक पालतू जानवर पैदा करेगा और सभी डेटा को बनाए रखेगा और पालतू को प्राप्त करने के लिए इस सेवा को संदर्भित करना चाहिए, या पालतू को संशोधन करना चाहिए, यह कहता है कि नाम में परिवर्तन होता है, या पते में परिवर्तन एक के माध्यम से किया जाना चाहिए इस सेवा के लिए एपीआई कॉल।
सेवा 2 - पेटाओटोर: यह सेवाएं पालतू जानवरों को इकट्ठा करती है और सत्यापन जांच करती है
सेवा 3,4 - अधिक मध्यवर्ती सेवा कॉल
सेवा 5 - उपयोगकर्ता इंटेक्स
ये बहुत मनमानी हैं लेकिन बात सरल है। यूआई या कुछ उपयोगकर्ता-सामना करने वाली सेवा किसी तरह से इस "पीईटी" ऑब्जेक्ट को पेश करना चाहती है। यह एक एपीआई के माध्यम से एक सेवा को कॉल करना चाहिए, जो एक सेवा को कॉल करता है, जो एक सेवा को कॉल करता है, आदि जब तक यह उस सेवा तक नहीं पहुंचता है जो आवश्यक जानकारी एकत्र करता है और रिले वापस शुरू होता है। अंत में UI सेवा में PET ऑब्जेक्ट प्रदर्शित होता है।
यह बहुत आम है - लेकिन अपनी पूर्ण मानसिकता के साथ, हमने हर सेवा में पीईटी वस्तु की नकल की। DRY (खुद को दोहराएं नहीं) सिद्धांत केवल एक सेवा को सम्मिलित करने के लिए लागू होता है और सेवाओं में लागू नहीं होता है, लेकिन बिंदु अभी भी है। यदि हम कोई फ़ील्ड जोड़ते हैं, तो हमें प्रत्येक में POJO की 5 सेवाओं को संशोधित करना होगा।
--OR-- हम पेट-ऑब्जेक्ट्स-लाइब्रेरी प्रदान कर सकते हैं जिसमें एपीआई से कुछ पूजो शामिल है और प्रत्येक सेवा पुस्तकालय पर आयात / निर्भरता कर सकती है। स्वयं सेवा पर कोई निर्भरता नहीं है, लेकिन सिर्फ सामान्य पुस्तकालय है। मुझे यह विचार पसंद है ताकि प्रत्येक सेवा में एक ही प्रकार की वस्तु हो और अपडेट आसान हो। लेकिन मैं भगवान-वस्तुओं के बारे में चिंतित हूं।
क्या समर्थक / चोर की सबसे अच्छी डिजाइन है? डे-कपल रहते हुए समान POJO वर्गों को दोहराने के लिए सेवाओं के बीच डेटा पास करने के लिए आपने क्या किया है?