2011-08-24 8 views
5

Utilizamos ExtJS 3.x bastante en nuestra aplicación más representativa. El área de administración de nuestra aplicación se divide en los diferentes módulos que ofrecemos. Cada módulo y, posteriormente, cada página de las diferentes acciones CRUD del módulo tienen su propio archivo .js para manejar la funcionalidad.¿Hay un patrón de diseño estándar para ExtJS

Cuando comenzamos, estábamos lanzando todo nuestro código en Ext.onReady() y sin preocuparnos realmente por el espacio de nombres global (hey ... nunca pensamos en nosotros mismos como desarrolladores de JavaScript). Después de obtener el truco de ExtJS, pasé a usar el patrón singleton y llamar al método init desde Ext.onReady() como tal.

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

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

Es este un uso correcto del patrón singleton javascript y hay algunos patrones que se ajustan mejor que Singleton ExtJS, como decir que tal vez el diseño del módulo?

He estado usando this guide como punto de partida para aprender patrones de diseño en Javascript.

+0

En caso de que tenga suficientes recursos, puede actualizar a extjs 4 y utilizar su poderosa aplicación MVC para diseñar su aplicación y no preocuparse por los espacios de nombres. –

+0

Lamentablemente, una actualización está fuera de lugar por el momento. Planeamos actualizar tan pronto como lleguemos a una versión estable de nuestro software. No puedo esperar para usar el patrón MVC y el nuevo sistema de tematización Sass. –

+0

Puede encontrar más detalles sobre el uso del _a_ modelo de diseño de módulo para Ext JS 3.x aquí: [ExtJS (JavaScript) Modelo de diseño de módulo mejores prácticas] (http://stackoverflow.com/q/9104387/320399) – blong

Respuesta

2

finalmente decidimos ascender a ExtJS y parece que con la nueva arquitectura MVC en su lugar la mejor manera de diseñar su software ExtJS está utilizando Ext.application()

Usted puede leer sobre él here.

1

Puede mirar here por ejemplo de crear módulos propios, archivo Module.js. Usamos este patrón para nuestra propia aplicación y no tuvimos ningún problema con él.

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 
}); 
Cuestiones relacionadas