5

我们在旗舰应用程序中大量使用 ExtJS 3.x。我们应用程序的管理区域分为我们提供的不同模块。每个模块,以及随后模块的不同 CRUD 操作的每个页面都有自己的 .js 文件来处理功能。

当我们开始时,我们只是将所有代码投入Ext.onReady()其中,并不真正担心全局命名空间(嘿......我们从未真正认为自己是 javascript 开发人员)。在掌握了 ExtJS 的窍门后,我开始使用单例模式并Ext.onReady()像这样调用 init 方法。

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

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

这是对 javascript 单例模式的正确使用吗?有没有比单例更适合 ExtJS 的模式,比如模块模式?

我一直使用本指南作为学习 Javascript 设计模式的起点。

4

2 回答 2

2

我们最终决定升级到 ExtJS,似乎使用新的 MVC 架构来设计 ExtJS 软件的最佳方式是使用Ext.application()

你可以在这里阅读。

于 2011-10-04T19:36:22.830 回答
1

您可以在这里查看创建自己的模块的示例,文件 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
});
于 2011-08-25T12:46:48.413 回答