मेरे पास एक "विरासत" कोड है जिसे मैं रिफैक्टर करना चाहता हूं।
कोड मूल रूप से सर्वर पर एक दूरस्थ कॉल करता है और एक उत्तर वापस ले जाता है। फिर जवाब के अनुसार निष्पादित करता है।
कोड का कंकाल का उदाहरण:कोड की 0/35/निष्पादित शाखाओं की लंबी सूची के लिए सर्वश्रेष्ठ डिज़ाइन पैटर्न/दृष्टिकोण
public Object processResponse(String responseType, Object response) {
if(responseType.equals(CLIENT_REGISTERED)) {
//code
//code ...
}
else if (responseType.equals(CLIENT_ABORTED)) {
//code
//code....
}
else if (responseType.equals(DATA_SPLIT)) {
//code
//code...
}
etc
समस्या कई-कई अगर/बाकी शाखाओं और प्रत्येक के अंदर कोड यदि तुच्छ नहीं है देखते हैं कि है।
तो इसे बनाए रखना मुश्किल हो जाता है।
मैं सोच रहा था कि इसके लिए सबसे अच्छा पैटर्न क्या है?
एक विचार था कि मुझे विधि नाम के साथ एक ही ऑब्जेक्ट बनाना था जैसा कि प्रतिक्रिया प्रकार और फिर प्रक्रिया के अंदर है, प्रतिबिंब का उपयोग करके प्रतिक्रिया केवल विधि के समान विधि के साथ विधि को कॉल करें।
यह प्रक्रिया को साफ करेगा रिस्पॉन्स लेकिन यह कोड को कई ऑब्जेक्ट्स के साथ एक ही ऑब्जेक्ट में ले जाता है और मुझे लगता है कि प्रतिबिंब प्रदर्शन समस्याओं का कारण बनता है।
क्या इसे साफ़ करने के लिए कोई अच्छा डिज़ाइन दृष्टिकोण/पैटर्न है?
रणनीति पैटर्न में हालांकि मैं कैसे रनटाइम पर उचित रणनीति प्रयोग करते हैं? जैसे http://en.wikipedia.org/wiki/Strategy_pattern#Java में यह केवल एक रणनीति का एक उदाहरण हार्डकोड करता है जबकि प्रत्येक सर्वर उत्तर देता है कि मैं कुशलतापूर्वक उचित रणनीति का उपयोग कैसे करूं? – Jim
टीबीएच शब्दकोश उदाहरण हालांकि अच्छा है, आईएमओ कोड नहीं है जिसे हम आम तौर पर जावा – Jim
@Jim क्षमा करते हैं, मैंने टैग में देखा और जावा स्वचालित रूप से जावास्क्रिप्ट को सोचा। मैं अपना उत्तर –