मैं जावास्क्रिप्ट + बैकबोनजेएस (एक एमवीसी फ्रेमवर्क) + आवश्यकताजेएस फ्रेमवर्क के भीतर काम कर रहा हूं, लेकिन यह सवाल कुछ हद तक सामान्य है।निर्भरता इंजेक्शन बनाम प्रबंधित निर्भरता बनाम वैश्विक वस्तु
मुझे बताया कि रीढ़ में से शुरू करते हैं, अपने विचार पारंपरिक दृश्य और नियंत्रकों का मिश्रण हैं, और अपने HTML टेम्पलेट्स हैं पारंपरिक MVC दृश्य
थोड़ी देर के लिए इस बारे में मेरे सिर रैकिंग गया और मैं कर रहा हूँ सुनिश्चित नहीं है कि सही/व्यावहारिक दृष्टिकोण क्या होना चाहिए।
मेरे पास एक उपयोगकर्ता ऑब्जेक्ट है जिसमें उपयोगकर्ता प्राथमिकताएं (जैसे यूनिट सिस्टम, भाषा चयन, कुछ और) शामिल है जो बहुत से कोड पर निर्भर करता है।
मेरे कुछ दृश्य टेम्पलेट्स के उपयोग के बिना अधिकांश काम करते हैं (तृतीय पक्ष libs का उपयोग करके, मैपिंग और ग्राफ़िंग libs की तरह), और इस तरह वे उपयोगकर्ता ऑब्जेक्ट पर यूनिट रूपांतरण की देखभाल करने के लिए निर्भरता रखते हैं, उदाहरण के लिए। मैं वर्तमान में आवश्यकता को प्रबंधित करने के लिए Requjs का उपयोग कर रहा हूं बिना encapsulation तोड़ने के।
मेरे कुछ दृश्य स्वयं बहुत कम काम करते हैं, और केवल मेरे टेम्पलेटिंग इंजन/टेम्पलेट्स पर मॉडल डेटा पास करते हैं, जो काम करते हैं और डीओ को उपयोगकर्ता ऑब्जेक्ट पर एक निर्भरता होती है, फिर से, इकाइयों के रूपांतरण जैसी चीजों के लिए। टेम्पलेट में इस निर्भरता को पारित करने का एकमात्र तरीका मॉडल में इंजेक्शन देना और मॉडल को टेम्पलेट इंजन में पास करना है।
मेरा सवाल है, इस तरह की व्यापक रूप से आवश्यक निर्भरता को सर्वोत्तम तरीके से कैसे संभालना है? - एक ऐप-व्यापी संदर्भ/वैश्विक वस्तु बनाएं जो हर जगह सुलभ हो? (YUK) - RequJS प्रबंधित निर्भरताओं का उपयोग करें, भले ही यह आमतौर पर कंक्रीट ऑब्जेक्ट्स की बजाय कक्षा/ऑब्जेक्ट परिभाषाओं के लिए प्रबंधित निर्भरता लोडिंग का उपयोग करने की अनुशंसा की जाती है। - या, केवल निर्भरता इंजेक्शन का उपयोग करें, और मैन्युअल रूप से उस निर्भरता को उस सब कुछ में पारित करें जो इसकी आवश्यकता है?
इसके लिए आप क्या चाहते हैं इसके लिए आप कमजोर ग्लोबल्स के सामने बैठने के लिए स्थगितों का उपयोग करके इस मुद्दे को कम करने के लिए कुछ महान पैटर्न पा सकते हैं जिन्हें असीमित रूप से संशोधित किया जा सकता है –