design patterns - ejemplos - Lenguajes de programación y patrones de diseño
patrones de diseño web (5)
Los Patrones de diseño en realidad no están destinados a estar vinculados a ningún idioma. Son soluciones más generales a problemas comunes.
diferentes lenguajes de programación tienen diferentes características o carecen de ciertas características. Los patrones de diseño son una forma de evitar esas deficiencias. He visto los libros y listas sobre patrones de diseño en lenguajes estáticos orientados a objetos (Java, C ++), pero también los Videos sobre patrones de diseño en Python.
Estoy interesado en ver algunos patrones de diseño comunes en otros idiomas como Forth, Icon, Lisp, etc. Una breve descripción de cómo se ven y por qué son necesarios en un idioma sería bueno. Tal vez una breve comparación con otro idioma que resuelve este problema sin un patrón de diseño.
Los delegados y eventos en C # y .Net hacen que sea trivial implementar el patrón de observador , ya que se usa tan comúnmente, por ejemplo, para manejar eventos GUI.
Para el patrón de diseño en LISP, puede leer esto , por Peter Norvig.
Citando esta diapositiva :
16 de los 23 patrones de diseño son invisibles o más simples
En Lisp, en lugar de patrones de diseño, estás usando:
- lambda y cierre (funciones anónimas y entornos de captura)
- funciones de orden superior (funciones relacionadas con funciones)
- macros (extesnions de sintaxis)
- diferentes estrategias de evaluación (evaluación perezosa, retroceso)
- funciones de primera clase, clases, espacios de nombres, módulos, etc.
- entorno dinámico (por ejemplo, reemplazar funciones en cualquier momento)
- etc.
Realmente no sé qué significa un patrón de diseño en este contexto. Si un patrón de diseño es una receta que se debe seguir para resolver ciertos tipos de problemas, entonces se trata de una falta de características en el lenguaje de programación o el entorno. Las computadoras pueden manejar tareas repetitivas bastante bien, por lo que los patrones de diseño deben implementarse y simplemente invocarse con los parámetros reales.
Los patrones de diseño a veces se llaman "modismos". En los idiomas que no son OO (C, Forth, COBOL, etc.) son simplemente "las formas habituales de hacer las cosas". A veces, se llaman "algoritmos". Cada idioma (de hecho, cada disciplina) tiene patrones de diseño de soluciones.
Si has visto algo dos o tres veces, has visto un patrón. Si puede describir el contexto, el problema, la solución y las consecuencias, ha elevado el patrón de algo vago a algo concreto y específico.
En los idiomas que no son OO, los patrones no suelen nombrarse y catalogarse. No sé por qué este sería el caso, parece ser así.