गहराई से इंजेक्शन की सहायता की है, मैं प्रसंस्करण तत्वों की एक श्रृंखला आयोजित करना चाहता हूं और उन्हें गुइस के माध्यम से एक साथ तार करना चाहता हूं। के निम्न पथ मान लेते हैं:गुइस ने निर्भरता पदानुक्रम
interface A
class AImpl
द्वारा कार्यान्वित कुछ इनपुटinterface B
class BImpl
जरूरतोंA
interface C
class CImpl
जरूरतोंB
interface D
class DImpl
जरूरतोंC
ए की निर्भरता केवल रनटाइम पर हल की जा सकती है, कॉन्फ़िगरेशन समय पर नहीं।
public interface DFactory {
public D createD(String inputForA);
}
:
public interface AFactory {
public A createA(String input);
}
लेकिन क्या मैं वास्तव में चाहते हैं कुछ इस तरह है: हमेशा की तरह दृष्टिकोण सिर्फ इस तरह, इस मामले में असिस्टेड इंजेक्शन का उपयोग करने के एक कारखाने, कि पैरामीटर के रूप में लापता उदाहरणों लेता है बनाने के लिए किया जाएगा
मैं पूरे पदानुक्रम के माध्यम से AImpl
-विशिष्ट निर्भरता मैन्युअल रूप से पास नहीं करना चाहता हूं। क्या यह गुइस के साथ इसे हासिल करना संभव है? यदि नहीं, इंजेक्शन के लाभों को बनाए रखने के दौरान, इस समस्या को सुस्त तरीके से रोकने का सबसे अच्छा तरीका क्या है?
मुझे अपनी मंजूरी याद करनी है, इस बारे में बताएं: "ए, बी के लिए इंजेक्शन प्रयास , सी, और डी @PipelineInput स्ट्रिंग की कमी के लिए पाइपलाइनरुनर के बाहर असफल हो जाएंगे "यह काम नहीं करता है, क्योंकि गुइस कॉन्फ़िगरेशन समय पर इंजेक्टरों को सत्यापित करता है और जैसे ही यह एक असंतुष्ट बाध्यकारी का पता लगाता है, असल में आप लगभग एक नहीं बना सकते पूर्ण इंजेक्टर, जो उसके बच्चे द्वारा पूरा किया जाएगा। निजी मॉड्यूल एक विशेष बांधने की मशीन का उपयोग करके इसे दूर करते हैं। – orsg
मेरी गलती; आपको निरंतर के आस-पास ए, बी, सी, और डी को बांधना होगा। हालांकि, ठीक करने के लिए मुश्किल है। उत्तर अपडेट किया गया। –
ठीक है, इसलिए मुझे बच्चे इंजेक्टर के अंदर विशेष रूप से पाइपलाइन से संबंधित सब कुछ बांधना है और माता-पिता इंजेक्टर केवल कारखाने ("पाइपलाइनरुनर") के बारे में जानता है। – orsg