ऐसा कुछ है जो मुझे सिर्फ गुइस के बारे में नहीं मिलता है: मैंने जो अभी तक पढ़ा है, उसके अनुसार, मुझे केवल अपने बूटस्ट्रैपिंग क्लास में इंजेक्टर का उपयोग करना है (एक स्टैंडअलोन एप्लिकेशन में यह आमतौर पर मुख्य() में होगा विधि) नीचे दिए गए उदाहरण की तरह (guice प्रलेखन से लिया गया):guice का उपयोग करते समय सभी जगह injector.createInstance() होने से कैसे बचें?
public static void main(String[] args) {
/*
* Guice.createInjector() takes your Modules, and returns a new Injector
* instance. Most applications will call this method exactly once, in their
* main() method.
*/
Injector injector = Guice.createInjector(new BillingModule());
/*
* Now that we've got the injector, we can build objects.
*/
RealBillingService billingService = injector.getInstance(RealBillingService.class);
...
}
लेकिन क्या होगा अगर नहीं सभी वस्तुओं मैंने कभी जरूरत स्टार्टअप के दौरान बनाया जा सकता है? हो सकता है कि जब एप्लिकेशन चल रहा हो तो मैं कुछ उपयोगकर्ता इंटरैक्शन का जवाब देना चाहता हूं? क्या मुझे अपने इंजेक्टर को कहीं और नहीं रखना है (उदा। एक स्थिर चर के रूप में) और फिर इंजेक्टर.getInstance (SomeInterface.class) को कॉल करें जब मुझे कोई नई वस्तु बनाने की आवश्यकता हो?
बेशक, जगह पर इंजेक्टर.getInstance() पर कॉल फैलाने के लिए वांछनीय नहीं लगता है।
मुझे यहां क्या गलत हो रहा है?
हां, मैं पूरी तरह से इसके साथ सहमत हूं। – Gamlor