2011-08-24 19 views
5

के लिए मानक डिजाइन पैटर्न है हम अपने फ्लैगशिप एप्लिकेशन के भीतर ExtJS 3.x का उपयोग बहुत अधिक करते हैं। हमारे एप्लिकेशन का व्यवस्थापक क्षेत्र हमारे द्वारा प्रदान किए जाने वाले विभिन्न मॉड्यूल में विभाजित है। मॉड्यूल के विभिन्न सीआरयूडी कार्यों के लिए प्रत्येक मॉड्यूल, और उसके बाद प्रत्येक पृष्ठ में कार्यक्षमता को संभालने के लिए अपनी स्वयं की .js फ़ाइल होती है।क्या ExtJS

जब हम शुरू कर दिया है, हम बस Ext.onReady() में हमारे कोड के सभी फेंक रहे थे और वैश्विक नामस्थान (हे ... हम वास्तव में कभी नहीं खुद के जावास्क्रिप्ट डेवलपर्स के रूप में सोचा) के बारे में वास्तव में चिंता नहीं। ExtJS के लटकने के बाद, मैं सिंगलटन पैटर्न का उपयोग करने और Ext.onReady() से इनिट विधि को कॉल करने के लिए चला गया।

var newModule = { 
    propertyOne: 'asfd', 
    propertyTwo: 'asdf', 
    init: function() { 
     // set up 
    } 
}; 

Ext.onReady(function() { 
    newModule.init(); 
}); 

इस जावास्क्रिप्ट सिंगलटन पैटर्न के सही उपयोग है और वहाँ किसी भी पैटर्न है कि ExtJS फिट सिंगलटन की तुलना में बेहतर, कहते हैं की तरह हो सकता है मॉड्यूल पैटर्न कर रहे हैं?

मैं जावास्क्रिप्ट में डिज़ाइन पैटर्न सीखने के लिए शुरुआती बिंदु के रूप में this guide का उपयोग कर रहा हूं।

+0

यदि आपके पास पर्याप्त संसाधन हैं, तो आप extjs 4 में अपग्रेड कर सकते हैं और अपने एप्लिकेशन को डिज़ाइन करने के लिए अपने शक्तिशाली एमवीसी एप्लिकेशन का उपयोग कर सकते हैं और नामस्थानों के बारे में चिंता न करें। –

+0

दुर्भाग्य से अब के लिए एक अपग्रेड प्रश्न से बाहर है। जैसे ही हम अपने सॉफ्टवेयर के एक स्थिर संस्करण तक पहुंचते हैं, हम उन्नयन की योजना बनाते हैं। मैं एमवीसी पैटर्न और नई सैस थीमिंग सिस्टम का उपयोग करने के लिए इंतजार नहीं कर सकता। –

+0

Ext JS 3.x के लिए _a_ मॉड्यूल डिज़ाइन पैटर्न का उपयोग करने के बारे में अन्य विवरण यहां पाए जा सकते हैं: [ExtJS (जावास्क्रिप्ट) मॉड्यूल डिज़ाइन पैटर्न सर्वोत्तम प्रथाओं] (http://stackoverflow.com/q/9104387/320399) – blong

उत्तर

2

हम अंत में ExtJS में नवीनीकृत करने का फैसला किया और यह Ext.application()

उपयोग कर रहा है आप इसे here के बारे में पढ़ सकते हैं अपने ExtJS सॉफ्टवेयर डिजाइन करने के लिए सबसे अच्छा तरीका स्थान पर नए MVC वास्तुकला के साथ लगता है।

1

आप अपने मॉड्यूल बनाने के उदाहरण के लिए here देख सकते हैं, फ़ाइल मॉड्यूल.जेएस। हमने इस पैटर्न का इस्तेमाल अपने स्वयं के आवेदन के लिए किया था और इसमें कोई समस्या नहीं थी।

Ext.app.Module = function(config){ 
    Ext.apply(this, config); 
    Ext.app.Module.superclass.constructor.call(this); 
    this.init(); 
} 

Ext.extend(Ext.app.Module, Ext.util.Observable, { 
    init : Ext.emptyFn 
});