【发布时间】:2011-08-24 15:45:46
【问题描述】:
我们在旗舰应用程序中大量使用 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 的模式,比如模块模式?
我一直使用this guide 作为学习 Javascript 设计模式的起点。
【问题讨论】:
-
如果你有足够的资源,你可以升级到 extjs 4 并使用他们强大的 MVC 应用程序来设计你的应用程序,而不用担心命名空间。
-
不幸的是,现在升级是不可能的。我们计划在我们的软件达到稳定版本后立即升级。我迫不及待想要使用 MVC 模式和新的 Sass 主题系统。
-
在 Ext JS 3.x 中使用 a 模块设计模式的其他细节可以在这里找到:ExtJS (JavaScript) Module Design Pattern best practices
标签: design-patterns extjs module singleton extjs3