मैं प्ले फ्रेमवर्क 2.4 में निर्भरता इंजेक्शन का उपयोग करने के तरीके को जानने का प्रयास कर रहा हूं। मैं सामान्य सिद्धांतों से परिचित हूं, लेकिन वास्तव में डिजाइन के प्रभाव को समझ नहीं पा रहा हूं। मेरा सामान्य तर्क रहा है, नियंत्रक वर्गों में स्थैतिक विधियां वैश्विक चर का उपयोग करने की तरह बहुत अधिक हैं, और यह आसानी से थ्रेड सुरक्षा आदि के साथ मुद्दों का कारण बन सकती है, साथ ही सामान्य रूप से खराब डिजाइन को प्रोत्साहित करती है। इसलिए चूंकि प्ले अब निर्भरता इंजेक्शन पर स्विच करने को प्रोत्साहित करता है, मुझे भी स्विच करना चाहिए।प्ले फ्रेम जावा निर्भरता इंजेक्शन - सिंगलेट्स का उपयोग कब करें
मैं इस बारे में उलझन में हूं कि इस संदर्भ में क्या अच्छा अभ्यास है। जब मैं Play आधिकारिक दस्तावेज़ पढ़ता हूं, तो यह निर्भरता इंजेक्शन के बारे में संक्षेप में बात करता है और फिर तुरंत @ सिंगलटन एनोटेशन का उल्लेख करता है। और उपलब्ध उदाहरण (http://www.typesafe.com/activator/template/play-guice) एक सिंगलटन "वेलकमटेक्स्ट जेनरेटर" कक्षा के बारे में भी बात करता है।
तो मैं सोच रहा हूं, क्या मुझे सिंगलटन ऑब्जेक्ट्स का उपयोग करना चाहिए क्योंकि उदाहरणों का अर्थ है? यदि ऐसा है, तो पुराने स्थैतिक तरीकों की तुलना में लाभ क्या है? क्या विशिष्ट ऑब्जेक्ट प्रकार हैं (उदा।, नियंत्रक?) जो सिंगलेट्स होना चाहिए, और क्या सिंगलेट्स के रूप में ऑब्जेक्ट्स को चिह्नित करने के लिए प्रदर्शन प्रभाव नहीं हैं?
धन्यवाद - यही मुझे चाहिए। मुझे "स्कोप्स" पृष्ठ मिला जो आपने बहुत उपयोगी से जुड़ा था।प्ले प्रलेखन से मेरे लिए यह स्पष्ट नहीं था कि क्यों "सिंगलटन" को हाइलाइट किया जा रहा था, या अन्य विकल्प थे - इससे अधिक समझदारी होती है। – myrosia
थोड़ा अधिक शोध के बाद, एक संभावित चेतावनी: "स्कोप्स" गिस पेज अनुरोध स्कोप और सत्र स्कोप के बारे में बात करता है, लेकिन जैसा कि मैं सबसे अच्छा कह सकता हूं, Play उन लोगों का समर्थन नहीं करता है, क्योंकि यह Google के सर्वलेट कंटेनर कार्यान्वयन का उपयोग नहीं करता है और नहीं इस समय अपने आप को प्रदान करें। तो उस अर्थ में दस्तावेज़ पृष्ठ भ्रामक हो सकता है, क्योंकि यह कार्यान्वयन निर्भरता को स्पष्ट नहीं करता है। – myrosia