2009-05-07 10 views
9

Mi pregunta tiene dos partes:Organizador GUI código

  • ¿Alguien tiene algún consejo o referencias a algún tipo de documentación en la web acerca de cómo escribir código de interfaz gráfica de usuario que es fácil de leer, escribir y mantener?

    Ejemplo.

    Me parece que cuanto más extensas son las formas de mi GUI, termino con una larga lista de métodos de manejo de eventos bastante cortos. Si trato de agregar algún método de ayuda privado, simplemente se pierden en el orden aleatorio, y constantemente tengo que desplazarme por la página para seguir una línea de pensamiento.


  • ¿Cómo puedo gestionar fácilmente la configuración a través de la aplicación?

    Ejemplo.

    Si el usuario selecciona un nuevo elemento en una lista desplegable, podría necesitar habilitar algunos componentes en la GUI, actualizar el archivo de configuración de la aplicación y almacenar el nuevo valor en una variable local para más adelante. Normalmente opto por no crear controladores de eventos para todas las configuraciones (ver arriba), y terminar con métodos como "LoadGUISettings" y "SaveGUISettings", pero luego termino llamando a estos métodos por todo mi código, y se ejecuta mucho de código solo para actualizar muy pocos, si los hay, los cambios reales.

Gracias!

+0

A mí también me gustaría escuchar algunos consejos de expertos. Patrones que debería estudiar, libros que debería leer, marcos que debería aprender, todos serían excelentes pistas para alguien nuevo en la programación de GUI, como yo. –

+0

¿Con qué idioma estás trabajando? –

+0

Llegué al punto de máxima frustración trabajando en Borland C++, pero es algo con lo que creo que siempre he tenido problemas. – jeremyalan

Respuesta

2

Si está utilizando WPF, es posible que desee leer el Composite Application Guideance for WPF.

Discute muchos de estos temas (y muchos otros). El objetivo principal de esa guía es hacer aplicaciones a gran escala de una manera flexible y sostenible.

+0

Lamentablemente, no estoy trabajando con WPF, pero definitivamente lo verificaré, y tal vez pueda extraer buena información y aplicarla a mi aplicación. – jeremyalan

0

Definitivamente debe mirar Jeremy Miller's guide al diseño de cliente enriquecido. Está incompleto, pero creo que está escribiendo un libro sobre el tema.

Otro blog que debe visitar es Rich Newman's. Está escribiendo sobre Composite Application Block, que es una guía de mejores prácticas de MS sobre cómo estructurar clientes ricos.

También puede leer this book que es solo una lectura muy ligera, pero le da algunas buenas ideas.

5

Algunas pautas para la primera pregunta, desde una perspectiva OO:

  • romper las clases grandes en otros más pequeños. ¿Tiene ese panel un montón de subpaneles bastante modulares? Haga una clase más pequeña para cada subpanel, luego tenga otra clase de nivel superior que los junte a todos.
  • Reduce la duplicación. ¿Tiene dos árboles que comparten la funcionalidad? ¡Haz una superclase! ¿Están todos sus controladores de eventos haciendo algo similar? ¡Crea un método que todos llamen!

Segunda pregunta. Veo dos maneras de hacer esto:

  • Oyentes. Si muchos componentes deben responder a un cambio que se produjo en un componente, haga que ese componente active un evento.
  • Variables globales. Si muchos componentes están leyendo y escribiendo los mismos datos, hágalo global (no importa cómo lo haga en el idioma que elija). Para una utilidad adicional, combine los dos enfoques y permita que los componentes escuchen los cambios en el objeto de datos global.