Moving to English this page is a hard work for me. It will be done, but, in the meantime, use Google for a basic tranlation.
Qué se entiende por Patterns? La definición original de la "Banda de los Cuatro" (Gang of Four), Gamma, Helm, Johnson and Vlissides, en su libro "Design Patterns"
A design pattern systematically names, motivates, and explains a general design that addresses a recurring design problem in object-oriented systems. It describes the problem, the solution, when to apply the solution, and its consequences. It also gives implementation hints and examples. The solution is a general arrangement of objects and classes that solve the problem. The solution is customized and implemented to solve the problem in a particular context. -
[Design patterns] solve specific design problems and make object-oriented designs more flexible and elegant, and ultimately reusable. They help designers reuse successful designs by basing new designs on prior experience. A designer who is familiar with such patterns can apply them immediately to design problems without having to rediscover them
La utilización de Patrones se ha convertido en un elemento ampliamente difundido. Sin embargo, comunmente se puede ver su uso aplicado muy estrechamente atado a los lenguajes en que son descriptos, lográndose en general patrones aplicados a mediano o bajo nivel. O, si su definición es más amplia, no existe un mapeo directo de esa descripción a un objeto generable inmediatamente. Una característica sobresaliente de su uso en Plex, es que el diseño abstracto a nivel de modelo parte ya inicialmente de un patrón descripto a alto nivel, que permite combinar estos "primitivos" para lograr otros de mucho más generalizado alcance. Así, podemos partir de patrones para la recuperación de filas de un orígen de datos, y arribar patrones de manejo de tablas relacionales en general, o partir del mecanismo de funcionamiento de una grilla, y llegar a relaciones complejas entre distintos tipos de entidades en una ventana.
Las características de Plex son sumamente favorables para la utilización de Patrones: La herencia aplicada a alto nivel, la utilización de reemplazo de patrones para componer nuevos, la posibilidad de usar herencia múltiple, combinando la presentación y la lógica de distintos patrones, dan un conjunto de herramientas muy productivas. No tendría sentido trabajar con Plex, sin construír patrones que estandaricen y reduzcan el número de pasos para llegar a la construcción de una aplicación. Un modelo en Plex es la conexión y especialización de un conjunto base de piezas, que se dedican a tareas específicas. Así, a medida que un desarrollo complejo avanza, dispone de un repositorio más rico de partes combinables, que van facilitando el desarrollo en una espiral en crecimiento.
Inspirado en el movimiento Open Source, y por la iniciativa ya mencionada en la lista de desarrolladores de Plex, de Open Minipatterns, Simon Jasperse acaba de proponer públicamente que se inicie un conjunto de Patrones bajo el modelo abierto, a propósito de su interesante patrón dedicado al manejo de exportación e importación con XML. Es posible hacerlo? Mejor que muchos otros productos, Plex está diseñando para trabajar en grupos, y para administrar versiones y releases. El trabajo remoto no sólo es una posibilidad, sino una realidad en muchos casos; es decir, técnicamente, está privilegiado para lograrlo. Un buen número de colegas lo aprueba, iniciando la posibilidad de ampliar el repertorio existente de patrones en base al trabajo colaborativo de la comunidad existente. Pudiera constituír un impulso a la mayor difusión de Plex.
Qué recursos básicos hay disponibles?
En el repositorio de Plex es posible obtener como recurso ya disponible, casos complejos como una estructura de lista (Despiece de un producto, por ejemplo), o manejo flexible de contactos de negocios. Un caso particularmente interesante es Websydian, dedicado al desarrollo de aplicaciones Web. En esta sección nos ocuparemos de ellos, usándolos para guiar su aplicación en algunos casos, explicar algunos que fueran complejos, y tomar casos que pudieran ser de interés para dar más productividad al armado de un modelo.
Con el objetivo de fundamentar el conocimiento de la teoría tras el diseño de Patrones, puede recurrirse a un gran número de fuentes. Iremos indicando aquí algunos de ellos, sea por su valor como fundamento, o sea por los casos que ofrece para su estudio, o por su facilidad de accceso en Internet.
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides | Design Patterns: Elements of Reusable Object-Oriented Software |
James O. Coplien y Douglas C. Schmidt | Pattern Languages of Program Design |
Martin Fowler | Analysis Patterns: Reusable Object Models |
Patterns Of Enterprise Application Architecture | |
Listas de Bibliografía | En Hillside.net |
En Enterprise Integration Patterns | |
En Cetus, listas exhaustivas | |
En Wikipedia, al final, referencias | |
En la Universidad Técnica de Munich (TUM) |
Cetus | Una de las fuentes mas completas de información sobre Patrones, como en otros casos de OO. |
Pressman | Referencias a la mayor parte del material existente (Cetus está incluído, como otras referencias aquí destacadas). |
Portland Pattern Repository | Sostenido por Ward Cunningham, se puede encontrar teoría y casos de patrones desarrollados. |
Hillside.net | Una comunidad dedicada a la difusión, estudio, utilización de Patrones. Organizadores de las conferencias anuales de PLOP. |
Brad Appleton | Las referencias y estudios dedicados por Brad Appleton a Patterns, él mismo un activo desarrollador de patrones. |
Especialmente esta página en el servidor de crossroads | |
James Coplien | Los patrones subyacentes en procesos exitosos de generación de software |
Extendiendo la Orientación a Objetos con Patrones de diseño | |
Software Patterns, un artículo pionero | |
Martín Fowler | Artículos en su sitio: Analysis Patterns |
Developing Patterns of Enterprise Software | |
Patrones de diseño para Integración de Aplicaciones de Empresa (EAI) | |
Scott Ambler | Process Patterns,Building Large-Scale Systems Using Object Technology |
Brian Kurotsuchi | Un pequeño tutorial sobre la aplicación de Patrones |
Mihaly Elekes | Discusión de principios, y aplicación de casos en abundancia |
Chaos-Choas, Wiki | Sitio alemán con abundantes casos desarrollados en Java y Python, y referencias. |
Jeniffer Tidwell | Patrones dedicados a presentación e Interfaz de Usuario |
Open Process Framework | Más de 1100 componentes reusables, descriptos. Orientado a la elaboración de componentes, pueden incluírse aquí también como repositorio de ideas destinadas a resolver problemas específicos. |
Oberlin College | En el contexto de clases de la institución, existe un detallado repositorio de patrones adaptados de los expuestos en "Design Patterns", de Gamma, Visslides, Helm y Johnson, junto con recursos asociados para su construcción. |
Data and Object Factory | Empresa dedicada a la capacitación, ofrece un conjunto de patrones explicados sobre la base de los de GOF |
Luis Guerrero | Curso de OOD y Patrones dictado en la Universidad de Chile |
Felix Prieto Arambillet | Curso de Patrones en el Departamento de Informática de la Universidad de Valladolid |
Miguel Laguna | Patrones explicados en el curso de Programación iii, Departamento de Informática, Universidad de Valladolid |
Teleprogramadores.com | El sitio soportado por David Hernández Tejada (autor?), con un buen desarrollo del tema, con casos expuestos en un buen número, algunos completos, y buenas referencias a otros materiales. |