में वैश्विक स्तर पर आवश्यक वस्तुओं को संग्रहीत करने के लिए सर्वोत्तम अभ्यास मैं एमवीपी शैली (जीडब्ल्यूटीपी) में एक जीडब्ल्यूटी एप्लीकेशन विकसित करना शुरू कर रहा हूं और जो सर्वर पक्ष पर प्रमाणीकरण और प्रमाणीकरण के लिए स्प्रिंग सुरक्षा का उपयोग करता है।जीडब्ल्यूटी
आवेदन के कई दृश्यों में, मुझे वर्तमान उपयोगकर्ता के किसी दिए गए प्राधिकरण के संबंध में नियंत्रण सक्षम या अक्षम करना होगा। मेरे पास पहले से ही एक आरपीसी सेवा है जो उपयोगकर्ता की जानकारी तक पहुंच प्रदान करती है जिसमें सभी आवश्यक जानकारी शामिल है।
अब मेरा प्रश्न: उपयोगकर्ता डीटीओ को क्लाइंट साइड पर स्टोर करने के लिए सबसे अच्छी जगह क्या है?
चूंकि उपयोगकर्ता के अधिकार कई प्रस्तुतकर्ताओं में प्रासंगिक हैं, इसलिए मुझे इसे हर जगह चारों ओर पास करना होगा। वैकल्पिक रूप से, मैं प्रत्येक प्रस्तुतकर्ता में एक आरपीसी सेवा उदाहरण सेट कर सकता हूं और प्रत्येक बार उपयोगकर्ता विवरण की आवश्यकता होती है (शायद क्लाइंट-साइड पर कैश किया गया)। लेकिन मुझे इस उद्देश्य के लिए प्रत्येक प्रस्तुतकर्ता में उपयोगकर्ता आरपीसी सेवा रखने का विचार पसंद नहीं है।
ईमानदार होने के लिए, मैं एक केंद्रीय रजिस्ट्री को प्राथमिकता देना चाहूंगा जहां UserDetails ऑब्जेक्ट डालना है और जो मेरे ऐप में कहीं से भी पहुंच योग्य है। क्या जीडब्ल्यूटी में पहले से ही ऐसी रजिस्ट्री है?
मेरे उदाहरण में, आप अक्सर क्षैतिज रूप से प्रयुक्त वस्तुओं से सामना कर सकते हैं। जीडब्ल्यूटी में उनके साथ कैसे निपटें?
यह मेरा वर्तमान समाधान है, वास्तव में। हालांकि 1) यूनिट परीक्षण की बात करते समय स्थैतिक चर समस्याग्रस्त हैं और 2) यह तय करना मुश्किल है कि कौन सा हिस्सा (वर्ग) उस स्थिर उदाहरण को रखने के लिए जिम्मेदार है। एक प्रस्तुतकर्ता, आरपीसी सेवा (इसका मतलब यह होगा कि अगर मैं वहां से उपयोगकर्ता ऑब्जेक्ट तक पहुंचना चाहता हूं तो मेरे दृश्य ऑब्जेक्ट में आरपीसी सेवा की निर्भरता है। – rainer198
मैं अपने वर्तमान उपयोगकर्ता को क्लाइंटफैक्टरी कार्यान्वयन में सरल, सरल सरल और KISS का पालन करता हूं सिद्धांत (http://en.wikipedia.org/wiki/KISS_principle) – koma
हालांकि मैं क्लाइंट फैक्ट्री के बजाय जीआईएन का उपयोग कर रहा हूं, मुझे यह समाधान पसंद है। यह स्पष्ट है कि इस प्रश्न का एक सच्चा उत्तर नहीं हो सकता है (स्टैक ओवरफ्लो ने मुझे चेतावनी भी दी कि इसे खारिज कर दिया जा सकता है), इसलिए, रिले लार्क, अगर मैं दोनों उत्तरों को "सही" के रूप में चिह्नित कर सकता हूं, तो मैं ऐसा करूँगा ;-) – rainer198