No se necesitan patrones de diseño. En cualquier idioma.
Tiendo a encontrar un montón de código escrito por personas que leen sobre los patrones de diseño y luego piensan que deberían usarlos por todos lados. El resultado es que el código real se entierra bajo toneladas de interfaces, envolturas y capas y es bastante difícil de leer. Ese es un enfoque incorrecto para los patrones de diseño.
Los patrones de diseño existen para que tenga un repertorio de expresiones idiomáticas útiles cuando se encuentre con un problema. Pero nunca debe aplicar ningún patrón antes de identificar el problema. Mantenlo simple y estúpido siempre debe ser el principio de gobierno superior.
También ayuda pensar en los patrones de diseño como un concepto para pensar en el problema en lugar de escribir un código específico para escribir. Y acerca de gran parte de la plantilla como solución alternativa a Java que carece de funciones libres y objetos de función estándar que utiliza en la mayoría de los otros lenguajes que los tienen (como Python, C #, C ++, etc.).
Podría decir que tengo un patrón de visitante, pero en cualquier idioma con funciones de primera clase será solo una función que toma una función. En lugar de la clase de fábrica, normalmente tengo una función de fábrica. Podría decir que tengo una interfaz, pero luego solo son un par de métodos marcados con comentarios, porque no habría ninguna otra implementación (por supuesto, en python, una interfaz siempre es solo comentarios, porque está tipificada). Todavía hablo del código como el uso del patrón, porque es una forma útil de pensarlo, pero en realidad no escribo todas las cosas hasta que realmente lo necesite.
Aprende todos los patrones como conceptos . Y olvídate de las implementaciones específicas. La implementación varía, y debería variar, en el mundo real, incluso solo en Java.