हमारे मूल उत्पाद का हिस्सा एक वेबसाइट सीएमएस है जो विभिन्न पेज विजेट का उपयोग करता है। ये विजेट सामग्री प्रदर्शित करने, उत्पादों को सूचीबद्ध करने, ईवेंट पंजीकरण को संभालने आदि के लिए ज़िम्मेदार हैं। प्रत्येक विजेट को क्लास द्वारा प्रतिनिधित्व किया जाता है जो बेस विजेट क्लास से प्राप्त होता है। पृष्ठ को प्रतिपादित करते समय सर्वर डेटाबेस से पेज के विजेट को पकड़ता है और फिर सही वर्ग का उदाहरण बनाता है। फैक्ट्री विधि सही है?क्या मैं इसे अपने कारखाने के तरीके से अधिक कर रहा हूं?
Private Function WidgetFactory(typeId)
Dim oWidget
Select Case typeId
Case widgetType.ContentBlock
Set oWidget = New ContentWidget
Case widgetType.Registration
Set oWidget = New RegistrationWidget
Case widgetType.DocumentList
Set oWidget = New DocumentListWidget
Case widgetType.DocumentDisplay
End Select
Set WidgetFactory = oWidget
End Function
फिर भी, यह सब ठीक है, लेकिन जैसा कि टाइम विजेट के प्रकार की संख्या पर चला गया है लगभग 50 हो गई है कारखाने विधि अर्थ नहीं बल्कि लंबा है। हर बार जब मैं एक नया प्रकार का विजेट बनाता हूं, तो मैं विधि में कुछ और लाइनों को जोड़ने के लिए जाता हूं और मेरे सिर में थोड़ा अलार्म रिंग जोड़ता हूं, शायद यह चीजों को करने का सबसे अच्छा तरीका नहीं है। मैं सिर्फ उस अलार्म को अनदेखा करता हूं लेकिन यह जोर से हो रहा है।
तो, क्या मैं इसे गलत कर रहा हूं? क्या इस परिदृश्य को संभालने का कोई बेहतर तरीका है?
+1 सटीक और बिंदु पर। –
आपके उत्तर के लिए धन्यवाद। मुझे लगता है कि पहले सवाल का जवाब "मुझे नहीं पता ..." हो सकता है। मेरी विधि के लिए वैकल्पिक दृष्टिकोण क्या हो सकता है? मुझे डेटाबेस में टाइप आईडी के किस मूल्य के आधार पर विजेट का एक अलग उप-वर्ग बनाना होगा। – jammus
@jammus: मैंने अपना जवाब संपादित किया। – Heinzi