patterns explained book design-patterns

design patterns - explained - ¿Existe una lista definitiva de patrones de diseño?



design patterns php (12)

Creo que hay un "ciclo de vida básico de un patrón de diseño"

  1. El autor escribe sobre el patrón de diseño en un libro.
  2. El libro se lee bien, posiblemente sea el mejor vendedor
  3. El patrón de diseño entra en la conciencia pública, gana interés mental.
  4. Se usa el patrón de diseño. Funciona bien. patrón de diseño obtiene más mindshare
  5. El patrón de diseño se convierte en panacea, se usa en exceso.
  6. Different Author escribe "Patrón de diseño considerado dañino"
  7. Patrón de diseño se convierte en patrón Anti
  8. Different Author se hace famoso, escribe un libro lleno de nuevos patrones de diseño ...

¿De dónde vino la idea de los patrones de diseño, quién decidió qué es y qué no es un patrón y les dio sus nombres? ¿Existe una organización oficial que los defina, o existen a través de algún consenso de la comunidad?


Diría que la Unión de la lista en el libro La pandilla de los cuatro y los Patrones de la arquitectura empresarial de Fowler te darán el 99% de lo que siempre necesitarías saber.



Hay un libro canónico: Gamma, Helm, Johnson, Vlissides: "Dessign Patterns - Elements of Reusable Object-Oriented Software", que comenzó todo. Contiene 23 patrones.


La idea de Design Patterns fue acuñada por Christopher Alexander, mientras escribía sobre patrones arquitectónicos dentro de edificios y ciudades. Del mismo modo, han surgido patrones a medida que los ingenieros han adquirido más experiencia con las metodologías de diseño orientadas a objetos.

No hay un consorcio oficial que defina qué es un patrón y qué no es un patrón. Sin embargo, los patrones generalmente tienen un ciclo de vida largo antes de que sean generalmente aceptados. La comunidad de desarrollo está empezando a participar en cosas como PLOP (Lenguajes de patrones de programas) y su conferencia anual: Conferencia de 2008 , que se centra en autores de patrones y entusiastas para debatir sobre el tema de los patrones y el nuevo desarrollo de patrones.


La mayoría de la gente apunta a la "Banda de los Cuatro" (Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides) que escribió el libro Patrones de diseño: Elementos del software reutilizable orientado a objetos . No existe una verdadera lista definitiva ya que los patrones de diseño útiles se están descubriendo todo el tiempo.


No hay una lista definitiva, ya que es probable que exista una autoridad que declare si un patrón es un patrón o simplemente ... algo más.

Algunos patrones solo tienen sentido en un subconjunto de idiomas: el libro GOF canónico se concentra en Java (¿o es C ++? El libro está sobre mi escritorio en la oficina) y algunos de los patrones descritos no son muy relevantes en, por ejemplo, Ruby. o VB6. Y viceversa, por supuesto.


No hay una lista definitiva. Los patrones se descubren, no se inventan, por lo que no hay una organización que pueda decir "esto es un patrón" y "esto no es un patrón". Incluso si hubiera uno, no sería útil para nadie.

A pesar de eso, los patrones "famosos" son los descritos en Design Patterns, o el libro de GOF.


No puede haber una lista definitiva. Nunca.

Si ve algunas soluciones a un problema que, para usted, tiene un patrón que puede articularse, ha descubierto un patrón de diseño. Siempre puedes continuar haciendo esto.

Cada nueva solución inteligente podría ser la génesis de una solución similar que comparte un patrón común. Los patrones son algo que utilizas para resumir y capturar una solución genial para un problema.

El cerebro humano puede encontrar patrones en casi cualquier cosa . Es algo que hacemos sin pensarlo.


Respuesta corta: No.

Respuesta larga: dado que si alguien diseña algo, y tiende a ser reutilizado por otros, se creará (o descubrirá) un nuevo "patrón de diseño".

En realidad, la cantidad de patrones de diseño en las aplicaciones existentes puede ser enorme, pero ninguno los ha clasificado todavía.

Yo agregaría los enlaces anteriores estos dos:

http://martinfowler.com/eaaCatalog/

http://c2.com/ppr/