2012-02-23 12 views
5

He sido programador de Python desde hace más de 7 años, y he estado diseñando con PyQt durante más de 3 años ... Pero no soy un Comp Sci de formación clásica. mayor. Más recientemente he estado aprendiendo Go y he estado siguiendo activamente el Golang-nuts discussion list que está lleno de desarrolladores extremadamente inteligentes. De este grupo de discusión, he visto muchas referencias a patrones de diseño de software, como Observer, Reactor, etc. De nuevo porque no soy un especialista en CS, nunca aprendí realmente toda esta terminología y teoría, pero me hizo preguntarme ...¿Qué patrones de diseño de software presentan los marcos comunes de GUI?

¿Qué patrones de diseño presentan marcos comunes de GUI como Qt, wx, GTK?

Tengo la sensación de que es una mezcla de patrones para diferentes componentes, como el bucle de eventos frente a señales/ranuras o vinculante frente a la observación de valores clave, y así sucesivamente. Me encantaría escuchar una explicación o generalización sobre cómo estos patrones de software se relacionan con los componentes tradicionales de estos marcos.

Como un pequeño elemento secundario a esta pregunta: ¿Hay marcos de GUI que intenten y adopten un enfoque de patrón completamente diferente para una solución GUI? ¿Cocoa/objective-c usa los mismos patrones de bucle de eventos que estos otros?

actualización
para ayudar a reducir el foco de mi pregunta, y en base a la respuesta por @HDDimon, me pregunto principalmente sobre Patrones de Comportamiento (comunicación):
http://en.wikipedia.org/wiki/Design_Patterns#Behavioral_patterns

Respuesta

5

Buenos días. Creo que la mejor respuesta la encontrarás en el artículo de Martin Fowler GUI Architectures.

de este artículo:

Modelo Vista Controlador Probablemente el patrón más amplio citado en el desarrollo de interfaz de usuario es el Modelo Vista Controlador (MVC) - es también el más citado mal. He perdido la cuenta de las veces que he visto algo descrito como MVC que resultó ser nada igual. Francamente, una gran parte de la razón es que las partes de MVC clásico realmente no tienen sentido para los clientes ricos en estos días. Pero, por el momento, echaremos un vistazo a , sus orígenes.

En el corazón de MVC, y la idea de que era el más influyente a los marcos más tarde, es lo que llamo Presentación Separado. La idea detrás de la Presentación Separada es hacer una división clara entre los objetos de dominio que modelan nuestra percepción del mundo real, y los objetos de presentación que son los elementos de la GUI que vemos en la pantalla . Los objetos de dominio deben ser completamente independientes y funcionan sin referencia a la presentación, también deben ser compatibles con múltiples presentaciones, posiblemente simultáneamente. Este enfoque también era una parte importante de la cultura Unix, y continúa hoy en día , lo que permite manipular muchas aplicaciones a través de una interfaz gráfica de línea de comandos .

De acuerdo con este artículo, los mejores tipos de patrones para la división entre cualquier tipo de componentes son los patrones estructurales.

de "Design Patterns: Elements of Reusable Object-Oriented Software" por The "Gang of Four": Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. (Realmente quiero que recomendamos leer este libro impresionante)

  • patrones de estructura:
    • adaptador
    • Puente
    • Compuesto
    • decorador
    • Fachada
    • peso mosca
    • Proxy

Pero en cualquier tipo de marcos se puede ver la mezcla de varios tipos de patrones: los patrones de creación, patrones estructurales, patrones de comportamiento.

Encontré relational diagram between patterns del libro Design Patterns, puede ser útil para el uso diario.

UPD: Great SO answer añadido.

+0

Muchas gracias por esta información. Estoy muy familiarizado con MVC ya que también es bastante común en otros frameworks. Definitivamente verificare sus referencias. Pero, también esperaba que alguien enfocara su respuesta más específicamente en los populares marcos de GUI y sus métodos de comunicación. El bucle de eventos, señales de ranuras, kvo, mensajes/eventos, etc. Obviamente, pude leer un libro sobre patrones generales de diseño, pero quería escuchar ejemplos directos y específicos de estos marcos de GUI. ¿Alguna información extra? – jdi

0

Encuentro Google Material Design una guía GUI perfecta, que incluye restricciones de diseño y principios en línea con los patrones de estructura general.

También encontrará estos GUI Design Books, relacionados con patrones de comportamiento y esto GUI Patterns Site útil.

+0

Gracias por la respuesta, pero creo que este es el tipo de patrón incorrecto en relación con mi pregunta. Estos son patrones de diseño que son más simples descripciones de estilo UX. Estaba preguntando sobre Comp Sci. Patrones de programación de estilo, como el patrón Observer. No es un patrón para marcar una casilla de verificación y lo que significa para la interacción del usuario – jdi

+0

Estaba buscando el mismo tipo de información cuando encontré tu pregunta. Todavía no se ha encontrado nada sobre la estructuración de un código de proyecto GUI, algo así como los patrones de la Gang of Four, pero específicamente para GUI (excepto algunos patrones). ¿Encontraste algo fundamental sobre el tema? – Zon

+0

La respuesta aceptada fue la mejor que obtuve hasta ahora – jdi

Cuestiones relacionadas