2011-08-24 14 views
5

私たちは主力アプリケーションでExtJS 3.xを使用しています。アプリケーションの管理領域は、私たちが提供するさまざまなモジュールに分割されています。モジュールの各CRUDアクションの各ページは、それぞれの機能を処理する独自の.jsファイルを持っています。ExtJSの標準的なデザインパターンはありますか

私たちが始めたとき、私たちはすべてのコードをExt.onReady()に投げかけていましたが、グローバルな名前空間について心配していませんでした(ちょっと...私たちは本当にJavaScript開発者として考えていませんでした)。 ExtJSのハングを取得した後、私はシングルトンパターンを使用してExt.onReady()からinitメソッドを呼び出すように移動しました。

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

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

これは、JavaScriptのシングルトンパターンの正しい使用され、モジュールのパターンが、多分言うように、シングルトンよりExtJSには、より良いフィットどんなパターンがあるのですか?

私は、this guideをJavascriptのデザインパターンを学習の出発点として使用してきました。

+0

十分なリソースがある場合は、extjs 4にアップグレードし、強力なMVCアプリケーションを使用してアプリケーションを設計し、名前空間を気にする必要はありません。 –

+0

残念ながら、アップグレードは今のところ問題にはなりません。私たちは、ソフトウェアの安定版に達するとすぐにアップグレードを計画しています。私はMVCパターンと新しいSassテーマシステムの使用を待つことができません。 –

+0

Ext JS 3.xの_a_モジュールデザインパターンの使用に関するその他の詳細は、ここをクリックしてください:[ExtJS(JavaScript)Module Design Pattern best practices](http://stackoverflow.com/q/9104387/320399) – blong

答えて

2

我々は最終的にはExtJSのにアップグレードすることを決定し、あなたのExtJSのソフトウェアを設計するための最良の方法は、あなたがそれhereについて読むことができますExt.application()

を使用している場所に新しいMVCアーキテクチャと思われます。

1

たとえば、hereのように、独自のモジュールを作成し、Module.jsファイルを作成することができます。私たちはこのパターンを独自のアプリケーションに使用していましたが、問題はありませんでした。

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 
}); 
関連する問題