मेरे पास CSV फ़ाइल ऑपरेशन से उत्पादों के आयात के लिए एक वर्ग है जिसके लिए लगभग 7 पैरामीटर की आवश्यकता होती है। यह एक जानकारी है जिसे आयातक के लिए निश्चित रूप से जरूरी है।कन्स्ट्रक्टर-आधारित और सेटर-आधारित इंजेक्शन मिश्रण एक बुरी चीज है?
इन सभी पैरामीटरों का जीवन जीवन एक ही है। अंत में हमारे पास Immutable Object होना चाहिए।
मैं उन सभी को कन्स्ट्रक्टर में सूचीबद्ध करने के लिए बहुत डर गया था क्योंकि इसकी पठनीयता को प्रभावित किया गया था और उनमें से 3 को सेटर्स इंजेक्शन में स्थानांतरित करने का फैसला किया गया था। लेकिन जाहिर है यह एक सुरुचिपूर्ण समाधान नहीं है।
सवाल:
1) एक बुरा व्यवहार मिश्रण निर्माता आधारित और सेटर आधारित इंजेक्शन है?
2) इस विशेष समस्या को कैसे हल किया जा सकता है?
मैं मार्टिन फाउलर द्वारा "पैरामीटर ऑब्जेक्ट पेश करने" को लागू करने के बारे में सोच रहा था, लेकिन इसमें कोई समस्या है।
4 पैरामीटर्स को पैरामीटर ऑब्जेक्ट में आसानी से स्थानांतरित किया जा सकता है (ग्राहक आईडी, प्रोजेक्टआईडी, भाषा आईडी आदि) - सभी पूर्णांक।
अन्य 3 पैरामीटर एक वस्तु है जिसे मैं इंजेक्ट करता हूं (यह नकली इकाई-परीक्षणों के लिए आवश्यक है)।
यह आपके डी कंटेनर पर निर्भर करेगा ... कुछ दूसरों की तुलना में यह आसान बनाते हैं। – skaffman
@ स्काफमान: मैं दृढ़ता से असहमत हूं। डी पैटर्न का उपयोग डी कंटेनर की पसंद से निर्धारित नहीं किया जाना चाहिए - कंटेनर आपकी मदद करने के लिए है, आपको बाधित नहीं करता है। –
@ निकिता - पूर्ण पैरामीटर ऑब्जेक्ट क्यों नहीं पेश करें और पैरामीटर में अपने मैक्स इंजेक्ट करें? –