Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

यह एक AI अनुवादित पोस्ट है।

제이온

[इफ़ेक्टिव जावा] आइटम 5. संसाधनों का उल्लेख न करें, डिपेंडेंसी इंजेक्शन का उपयोग करें

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

भाषा चुनें

  • हिन्दी
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • Magyar

durumis AI द्वारा संक्षेपित पाठ

  • यदि कोई वर्ग आंतरिक रूप से एक से अधिक संसाधनों पर निर्भर करता है, तो सिंगलटन और स्टैटिक उपयोगिता वर्गों का उपयोग करना अच्छा नहीं है, इसके बजाय कंस्ट्रक्टर में आवश्यक संसाधन पास करने वाले डिपेंडेंसी इंजेक्शन का उपयोग करना उचित है।
  • डिपेंडेंसी इंजेक्शन वर्ग के लचीलेपन, पुन: उपयोग, परीक्षण क्षमता में सुधार करता है, कई संसाधन उदाहरणों का समर्थन करता है, final कीवर्ड के माध्यम से अपरिवर्तनशीलता की गारंटी देता है।
  • हालांकि, बहुत अधिक निर्भरताओं वाले प्रोजेक्ट में, लागत कम करने के लिए डिपेंडेंसी इंजेक्शन फ्रेमवर्क (डैगर, गूइसे, स्प्रिंग आदि) का उपयोग किया जा सकता है।

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


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


उदाहरण

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

public class SpellChecker {

    private static final Lexicon dictionary = new Lexicon();

    private SpellChecker() {
    }

    public static boolean isValid(String word) {
        // dictionary का उपयोग करके लॉजिक
    }

    public static List suggestions(String typo) {
        // dictionary का उपयोग करके लॉजिक
    }

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


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

public class SpellChecker {

    private final Lexicon dictionary = new Lexicon();

    public static SpellChecker INSTANCE = new SpellChecker();

    private SpellChecker() {
    }

    public static boolean isValid(String word) {
        // dictionary का उपयोग करके लॉजिक
    }

    public static List suggestions(String typo) {
        // dictionary का उपयोग करके लॉजिक
    }


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


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

public class SpellChecker {

    private Lexicon dictionary = new Lexicon();

    public static SpellChecker INSTANCE = new SpellChecker();

    private SpellChecker() {
    }

    public static void changeDictionary(Lexicon dictionary) {
        this.dictionary = dictionary;
    }

    public static boolean isValid(String word) {
        // dictionary का उपयोग करके लॉजिक
    }

    public static List suggestions(String typo) {
        // dictionary का उपयोग करके लॉजिक
    }


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


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

public class SpellChecker {

    private final Lexicon dictionary;

    public SpellChecker(Lexicon dictionary) {
        this.dictionary = dictionary;
    }

    public static boolean isValid(String word) {
        // dictionary का उपयोग करके लॉजिक
    }

    public static List suggestions(String typo) {
        // dictionary का उपयोग करके लॉजिक
    }


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


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


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


public static List create(Supplier generator) {
    ...


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


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


स्रोत

제이온
제이온
제이온
제이온
[इफेक्टिव जावा] आइटम 3. निजी कन्स्ट्रक्टर या एनम टाइप के साथ सिंगलटन होने की गारंटी दें सिंगलटन एक ऐसा क्लास है जिसका केवल एक उदाहरण बनाया जा सकता है, जिसका उपयोग स्टेटलेस ऑब्जेक्ट या सिस्टम घटकों को लागू करने के लिए किया जाता है। सिंगलटन बनाने के तरीके public static सदस्य, स्थिर फैक्टरी विधि, एनम टाइप का उपयोग करने का तरीका आदि हैं, और प्रत

27 अप्रैल 2024

[इफेक्टिव जावा] आइटम 4. इंस्टेंटिएशन को रोकने के लिए प्राइवेट कंस्ट्रक्टर का उपयोग करें केवल स्थिर विधियों और क्षेत्रों वाले उपयोगिता वर्गों के लिए, इंस्टेंटिएशन को रोकने के लिए कंस्ट्रक्टर को निजी रूप से घोषित करना सबसे अच्छा है। यह कम्पाइलर द्वारा स्वचालित रूप से उत्पन्न डिफ़ॉल्ट कंस्ट्रक्टर को नियंत्रित करने और कक्षा के बाहर इंस्टेंटिएशन

28 अप्रैल 2024

[इफ़ेक्टिव जावा] आइटम 6. अनावश्यक ऑब्जेक्ट निर्माण से बचें जावा में अनावश्यक ऑब्जेक्ट निर्माण को कम करके प्रदर्शन को बेहतर बनाने के तरीकों के बारे में बताता है। स्ट्रिंग, बूलियन, रेगुलर एक्सप्रेशन, व्यू ऑब्जेक्ट, ऑटो बॉक्सिंग जैसे विभिन्न उदाहरणों के साथ ऑब्जेक्ट पुन: उपयोग के महत्व पर जोर दिया गया है। खासकर रक्ष

28 अप्रैल 2024

व्यक्तिगत निवेशक के लिए प्राइवेट इक्विटी से बेहतर हिस्सा: नकद को जल्द से जल्द अधिकतम करें, बिना उपयोग किए प्राइवेट इक्विटी में उच्च रिटर्न के लिए फंड की धनराशि को जल्दी से निवेश करने की प्रवृत्ति होती है, जो अनावश्यक सौदों का कारण बन सकती है। खासकर ब्लाइंड फंड में निवेश के लक्ष्य तय नहीं होते हैं, जिससे तेजी से निवेश और अधिक महत्वपूर्ण हो जाता है, और आईआरआर क
고집스런가치투자
고집스런가치투자
고집스런가치투자
고집스런가치투자

3 अप्रैल 2024

रस्ट कैसे समवर्ती बग को रोकता है रस्ट एक शक्तिशाली भाषा है जो समवर्ती प्रोग्रामिंग की चुनौतियों का समाधान करती है। इसके टाइप सिस्टम और ओनरशिप मॉडल के कारण थ्रेड के बीच डेटा ट्रांसफर और शेयरिंग सुरक्षित है। म्यूटेक्स, चैनल, एटॉमिक जैसे आंतरिक परिवर्तनशीलता पैटर्न का उपयोग करके साझा चर को
곽경직
곽경직
곽경직
곽경직
곽경직

28 मार्च 2024

[धातु सामग्री कार्यकारी वास्तविक] 38वां समाधान यह पाठ गर्मी उपचार, सामग्री विज्ञान, धातुकर्म से संबंधित शब्दावली और अवधारणाओं की व्याख्या करता है, साथ ही साथ डिकर्बोनाइजेशन परत मापन विधि, गर्मी उपचार सख्त करने में विफलता के कारण, क्रिप घटना आदि जैसे विभिन्न विषयों को शामिल करता है। विशेष रूप से, डिकर्
blog.naver.com/gksmftordldi
blog.naver.com/gksmftordldi
blog.naver.com/gksmftordldi
blog.naver.com/gksmftordldi

24 अप्रैल 2024

रूलबेस क्या है? रूलबेस चैटबॉट एक ऐसा चैटबॉट है जो पहले से परिभाषित नियमों के अनुसार उपयोगकर्ता इनपुट का जवाब देता है, यह सरल प्रश्नों या मानकीकृत जानकारी प्रदान करने के लिए उपयुक्त है। उदाहरण के लिए, इसका उपयोग अक्सर FAQ चैटबॉट या ग्राहक सहायता सेवाओं में किया जाता है, औ
꿈많은청년들
꿈많은청년들
रूलबेस लिखा हुआ इमेज
꿈많은청년들
꿈많은청년들

16 मई 2024

ऑटोमेटिक ट्रेडिंग प्रोग्राम में सुधार के लिए विचार यह एक ग्रिड ट्रेडिंग ऑटोमेशन प्रोग्राम के लिए सुधार के विचारों का परिचय देता है, जिसमें बड़े आयोजनों के प्रबंधन, निवेश निधि प्रबंधन तर्क, शॉर्ट पोजीशन को जोड़ने जैसे सुझाव दिए गए हैं। विशेष रूप से, यह बताता है कि होल्डिंग फ़ंक्शन के माध्यम से, गिरने पर बे
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마

21 अप्रैल 2024

संवेदी डेटा मॉडलिंग संवेदी डेटा मॉडलिंग इकाइयों को अलग करने और इकाइयों के बीच के संबंधों को ERD के रूप में प्रदर्शित करने की प्रक्रिया है। एक इकाई एक स्वतंत्र सूचना इकाई है, और एक विशेषता एक इकाई द्वारा धारित डेटा है। पहचानकर्ता एक इकाई की विशिष्ट पहचान करता है, और संबंध इका
제이의 블로그
제이의 블로그
제이의 블로그
제이의 블로그

8 अप्रैल 2024