Patrones de diseño

Chema Cortés py en ch3m4.org
Dom Ago 1 13:28:21 CEST 2004


Mensaje citado por Toni Martínez <python en ammsoft.com>:

> En estos temas estoy muy verde, pido perdón por adelantado por si digo
> alguna animalada.
> Cuando te refieres a implementar los patrones de diseño de Java en python,
> supongo que te refieres a los patrones catalogados en J2EE ?
> Bussines delegate, Service locator, ...
> http://www.programacion.com/java/tutorial/patrones2/
>
> El catálogo de patrones de java creo que nos permite solucionar problemas en
> la concepción del trabajo cliente servidor muy enfocado al punto de vista de
> como trabaja java, sobre todo en temas relacionados con la capa de
> presentación y los servicios de negocio. De tal forma que el Bussines
> delegate hasta nos permite optimizar el flujo de información entre el
> cliente y el servidor para no colapsar la red.

Por aquí irían los tiros. El modelo de "Capa de Negocio", en su abstracción, es
en sí un patrón del tipo "Patrón de Sistema". Otro patrón de sistema muy
conocido es el Modelo-Vista-Controlador (MVC).


> Por lo que creo que tu interés se basa en adaptarlos a sistemas tipo
> cherrypy. En tal caso, es posible que en ZOPE ya tengan algo implementado
> sobre este tema. Deben haberse encontrado problemas parecidos a los que
> habrán dado soluciones análogas.

No había pensando en cherrypy en este caso. Es más, al final no me han dejado
introducir metaclases en cherrypy2 :'-(  Y eso que, si álguien conoce algo del
cherrypy, es un sitio donde se presta muy bien a utilizar patrones de diseño
como el "singleton" [1] (una única instancia por clase) ó los "decoradores"
(para la programación orientada al aspecto, AOP)

Para zope supongo que tienen que haber álguien que haya aplicado patrones de
diseño, pero no he encontrado nada. Por eso mi primer mensaje, por si álguien
sabía de algo hecho en python.


[1] "singleton", ¿álguien se atrevería a dar traducción fiel de esta palabra?
(pe: "unitario" ¿?)




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