제이온

[इफेक्टिव जावा] आइटम 5. संसाधनों को स्पष्ट रूप से निर्दिष्ट न करें, निर्भरता इंजेक्शन का उपयोग करें

  • लेखन भाषा: कोरियाई
  • आधार देश: सभी देशcountry-flag
  • आईटी

रचना: 2024-04-28

रचना: 2024-04-28 13:39

यदि क्लास आंतरिक रूप से एक या अधिक संसाधनों पर निर्भर करती है, और वे संसाधन क्लास के व्यवहार को प्रभावित करते हैं, तो सिंगलटन और स्टेटिक उपयोगिता क्लास का उपयोग नहीं करना सबसे अच्छा है।


इन संसाधनों को क्लास द्वारा सीधे बनाने की अनुमति नहीं होनी चाहिए, बल्कि कंस्ट्रक्टर को आवश्यक संसाधन प्रदान करना चाहिए। निर्भरता इंजेक्शन के माध्यम से, क्लास की लचीलापन, पुन: प्रयोज्यता और परीक्षण योग्यता में सुधार किया जा सकता है।


उदाहरण

स्टेटिक उपयोगिता क्लास का उपयोग करके उदाहरण

```javascript public class SpellChecker {

}

यह उपयोगिता क्लास मानती है कि केवल एक शब्दकोश का उपयोग किया जाएगा। हालांकि, वास्तविकता में, शब्दकोश भाषा के आधार पर अलग-अलग होते हैं, और यहां तक कि विशिष्ट शब्दावली के लिए अलग शब्दकोश भी होते हैं।


सिंगलटन क्लास का उपयोग करके उदाहरण

```javascript public class SpellChecker {

}


सिंगलटन क्लास भी मानती है कि केवल एक शब्दकोश का उपयोग किया जाएगा, इसलिए उपरोक्त समान नुकसान होता है।


समाधान 1 - फील्ड से final कीवर्ड को हटा दें।

```javascript public class SpellChecker {

}


स्टेटिक उपयोगिता क्लास या सिंगलटन क्लास के शब्दकोश के लिए final कीवर्ड को हटाकर, इसे बाहरी रूप से एक अलग शब्दकोश में बदलने के लिए डिज़ाइन किया जा सकता है। हालांकि, यह विधि उपयोग करना भारी है, और मल्टीथ्रेडेड वातावरण में, यह समवर्ती समस्याओं का कारण बन सकता है।


समाधान 2 - निर्भरता इंजेक्शन का उपयोग करें।

```javascript public class SpellChecker {

}


ऊपर दिए गए उदाहरण से, हम यह देख सकते हैं कि स्टेटिक क्लास और सिंगलटन क्लास को आंतरिक संसाधनों पर निर्भर नहीं होना चाहिए। दूसरे शब्दों में, आंतरिक संसाधन बाहरी रूप से इंजेक्ट किए जाने चाहिए।


निर्भरता इंजेक्शन का उपयोग करने वाली क्लास final कीवर्ड के कारण अपरिवर्तनीयता की गारंटी दे सकती है, और कई संसाधन उदाहरणों का समर्थन कर सकती है। इसके अतिरिक्त, निर्भरता इंजेक्शन का उपयोग कंस्ट्रक्टर के साथ-साथ स्टेटिक फैक्ट्री और बिल्डर में भी किया जा सकता है।


निर्भरता इंजेक्शन में संसाधन को सीधे पास करने का एक सरल तरीका है, लेकिन फैक्ट्री को पास करने का तरीका अक्सर उपयोग किया जाता है। एक फैक्ट्री एक ऐसी वस्तु है जो कॉल होने पर एक विशिष्ट प्रकार के उदाहरण को बार-बार बनाती है। यह विधि फैक्टरी मेथड पैटर्न कहलाती है, और जावा 8 में Supplier<T> एक फैक्ट्री का एकदम सही उदाहरण है।


```javascript public static List create(Supplier<? extends Car> generator) { ... }


फैक्ट्री के प्रकार पैरामीटर को सीमित करने के लिए अक्सर सीमित वाइल्डकार्ड प्रकार का उपयोग किया जाता है। इस विधि का उपयोग करके, क्लाइंट फैक्ट्री को अपनी घोषित प्रकार की कोई भी उप-प्रकार पास कर सकता है।


निर्भरता इंजेक्शन लचीलापन और परीक्षण योग्यता में सुधार करता है, लेकिन निर्भरता-भारी परियोजनाओं के लिए यह काफी महंगा हो सकता है। ऐसे मामलों में, निर्भरता इंजेक्शन ढाँचे (डैगर, गुइस, स्प्रिंग, आदि) का उपयोग लागत को कम करने के लिए किया जा सकता है।


स्रोत

टिप्पणियाँ0

आईफोन ब्लैक एंड व्हाइट मोड का उपयोग कैसे करेंआईफोन ब्लैक एंड व्हाइट मोड के उपयोग के तरीके जानें। आँखों की थकान कम करना, एकाग्रता में सुधार करना आदि कई तरह के फायदे, सेटिंग विधि, उपयोग के टिप्स और अक्सर पूछे जाने वाले प्रश्न विस्तार से बताए गए हैं। आरामदायक और कुशल स्मार्टफोन उपयोग का अनुभव करें।
뉴스코리아
뉴스코리아
뉴스코리아
뉴스코리아

November 4, 2024

सुबह की कॉफ़ी शरीर के लिए हानिकारक है? सही समय कब है?सुबह कॉफ़ी पीने से कॉर्टिसोल का स्तर बढ़ सकता है, जिससे तनाव हो सकता है, इसलिए सुबह 9:30 से 11:00 बजे के बीच कॉफ़ी पीना अच्छा होता है।
세상 모든 정보
세상 모든 정보
세상 모든 정보
세상 모든 정보

March 30, 2024

आईफोन डार्क मोड संपूर्ण गाइड: सेटिंग से लेकर उपयोग तकयह आईफोन डार्क मोड सेटिंग और उपयोग गाइड है। इसमें आँखों की थकान कम करने और बैटरी की बचत के लिए तीन सेटिंग विधियाँ और अक्सर पूछे जाने वाले प्रश्न दिए गए हैं। सेटिंग ऐप, नियंत्रण केंद्र और शॉर्टकट ऐप का उपयोग करने के तरीके जानें।
뉴스코리아
뉴스코리아
뉴스코리아
뉴스코리아

November 4, 2024

🌅 मन को शांत करने के लिए सुबह की दिनचर्या कैसे बनाएंयह मन को शांत करने वाली सुबह की दिनचर्या बनाने के प्रमुख सिद्धांतों और व्यावहारिक तरीकों पर मार्गदर्शन करता है। हम हर सुबह के महत्व, एक टिकाऊ दिनचर्या के लिए सुझाव और जीवन में बदलाव पर चर्चा करते हैं।
smartlife
smartlife
smartlife
smartlife

July 21, 2025

भारतीय मौसम विज्ञान विभाग द्वारा 2024 के वसंत ऋतु में चेरी ब्लॉसम के खिलने की स्थिति सेवा शुरू भारतीय मौसम विज्ञान विभाग 7 मार्च से पूरे देश के 13 स्थानों पर चेरी ब्लॉसम (벚꽃) के खिलने की स्थिति की तस्वीरों के साथ जानकारी प्रदान कर रहा है। वसंत ऋतु में खिले फूलों की खबरों की जानकारी प्राप्त करें और वसंत ऋतु की यात्रा की योजना बनाएं।
Rebeka letter
Rebeka letter
Rebeka letter
Rebeka letter

March 7, 2024