मेरे पास एक उपयोग केस है जहां इनपुट पैरामीटर (ए, बी, सी, डी) और डेटा (एक्सवाईजेड कहें) का सेट है। पैरामीटर (ए, बी, सी, डी) के आधार पर मुझे डेटा (एक्सवाईजेड) को संसाधित करना होगा और वापस जवाब देना होगा। प्रसंस्करण तर्क पैरामीटर के आधार पर अद्वितीय या सामान्य हो सकता है (कहें कि कुछ # 1 केवल तभी करें जब ए, ए और सी करते समय कुछ # 2 करें, बी, सी और डी आदि पर कुछ # 2 करें)। मुझे प्रसंस्करण के आदेश को बनाए रखने की भी आवश्यकता हो सकती है।मेरे उपयोग के मामले के लिए उपयोग करने के लिए कौन सा डिज़ाइन पैटर्न?
वर्तमान कार्यान्वयन if-else loops पर आधारित है। मैं जिम्मेदारी की श्रृंखला, पाइपलाइन डिजाइन पैटर्न देख रहा हूँ। लेकिन उपरोक्त कार्य के लिए कोई अन्य उपयुक्त डिजाइन पैटर्न है?
उदाहरण का उपयोग करते हुए अगर-को अवरोधित कर देते:
आई/पी: एक = {A1, A2, A3}, बी = {B1, B2, बी 3}, सी = {C1, C2, सी 3}, डी = {डी 1, डी 2, डी 3} और XYZ = "foo"
if (A == A1)
{
//dosomething-A1
if (B == B1)
{
//dosomething-B1
if (C == C2)
{
//dosomething-C2
}
}
else if (B == B2)
{
//dosomething-B2
}
if (C == C2)
{
//dosomething-C2
if (D == D1)
{
//dosomething-D1
}
else if (D == D3)
{
//dosomething-D3
}
}
}
else if (A == A2)
{
//dosomething-A2
...
}
else if (A == A3)
{
//dosomething-A3
...
}
यदि आप डाउनवोट करने वाले हैं, तो कृपया एक कारण छोड़ दें। और @ जोशी, मैं सवाल समझता हूं, लेकिन आपके द्वारा दिया गया उपयोग मामला बहुत सार है। क्या आप अधिक जानकारी दे सकते हैं, या यहां तक कि आपके पास अभी तक कोड पोस्ट कर सकते हैं? –
मुझे लगता है कि डाउनवोट इसलिए था क्योंकि यह राय आधारित है। विषय पर: मुझे लगता है कि हमें इसका जवाब देने के लिए और जानकारी चाहिए। क्या प्रत्येक पैरामीटर के लिए डेटा प्रोसेसिंग अनुक्रमिक है, या सभी एक ही में जाते हैं? पैरामीटर एक-दूसरे पर निर्भर करते हैं? क्या कभी 4 से अधिक पैरामीटर होंगे? बेनामी कक्षाएं यहां बहुत हल कर सकती हैं, कोई पैटर्न आवश्यक नहीं है। –
मुझे लगता है कि डिज़ाइन पैटर्न (या सामान्य रूप से डिज़ाइन) से संबंधित कोई भी चर्चा राय-आधारित होगी। फिर भी, यह एक महत्वपूर्ण चर्चा है :-) –