Patrones de diseño

Miguel Angel Garcia miguela.garcia3 en alu.uclm.es
Lun Ago 2 12:09:21 CEST 2004


> Ya se que es abusar pero me podéis explicar con un ejemplo básico, de que me
> servirían los patrones de diseño en una aplicación normal de gestión.

Te remito al "Patrones de Diseño" que decía David. El primer tema es un
ejemplo de cómo usar patrones de diseño.

De todas maneras, tú ya usas patrones de diseño, solo que no los sabes
identificar. Así, a groso modo, diseñan un editor de textos. Un editor
que se precie puede guardar en distintos formatos, ¿no? Pues esa
posibilidad se puede implementar mediante un Builder (de hecho, es lo
más normal).

Hay patrones que se utilizan como si no lo fueran: hay gente que
considera un patrón al polimorfismo. Según Eric Gamma y el resto del
GoF, un patrón es el Iterator, con lo que el "for" de python se ha
transformado en un ejemplo de uso del patrón.

Hay que entender que un patrón es una forma conceptual de hacer las
cosas. No es una implementación. De esta manera, si yo te digo: "Quien a
buen árbol se arrima..." es muy probable que tú puedas continuar esa
frase. De la misma forma, si yo le digo a alguien que he utilizado un
Builder, ya no es necesario que le explique cómo lo he hecho: he
utilizado un patrón, y esta persona conocerá (al menos en lo básico)
cómo lo he hecho. ¡¡Piensa en la cantidad de comentarios que te
ahorras!! ;)

No sé si he resuelto tu problemilla, pero es que estoy viendo que la
gente no tiene muy claro lo que son los patrones. No se puede hablar de
"patrones en java" o "patrones en python" salvo para expresar la idea
"Ejemplo de implementación en java/python de patrones". Insisto en que
un patrón es una idea que se puede representar como un diagrama, un
párrafo de texto, un dibujo, un esquema en un lenguaje concreto... como
cualquier otra idea, pero NO ES ni el diagrama, párrafo, dibujo... sigue
siendo la idea.

Tampoco hay que ver los patrones como algo "malo": "Joder, tengo que
aprenderme los pxxxs patrones porque me los exigen en este proyecto" o
"es que me obligan a usar un Observer aquí", sino como una manera más de
hacer las cosas. Lo que pasa es que esa manera ha sido estudiada ya por
otra gente y se han comprobado ciertas ventajas (e inconvenientes) de
hacerlo así, por lo que resulta más sencillo saber si se ajusta a tus
necesidades o no.



-- 
Miguel Ángel García
http://arco.inf-cr.uclm.es/~miguel

Software Libre para Gente Libre
Free Software for Free People
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es