¿Patrones de diseño sin OOP? [cerrado]

68

Solo escuché el término "patrón de diseño" que se usa para el código orientado a objetos, y los patrones GoF incluyen solo patrones de diseño OOP, pero los patrones de diseño son soluciones elegantes para problemas de programación comunes, ¿no? No hay nada allí que diga que deben limitarse a la POO, ¿verdad?

Me gustaría ver algunos ejemplos de patrones de diseño fuera del ámbito de la programación orientada a objetos. ¿Usted tiene alguna? ¿Existe tal cosa (ningún libro, como el libro de GoF, debe haberse escrito necesariamente, solo deben usarse; eso es suficiente)?

Pueden ser específicos para algunos lenguajes de programación, pero se prefieren los patrones generales (a nivel de paradigma), de otros paradigmas distintos de los orientados a objetos.

    
pregunta Anto 12.04.2011 - 22:24

10 respuestas

10

En realidad, es una paradoja: uno de los patrones más populares que no son OO es ... "Clase".

Debido a que OO se inventó en lenguajes que no son OO, los desarrolladores tuvieron que simularlo (y lo están haciendo incluso ahora), por lo que nació el patrón. LISP y C son ejemplos de esto.

Pero sigue mi consejo: No cometas errores comunes, no uses patrones solo porque es genial , necesitas razones serias para justificar el uso de patrones (al menos OO).

Tomar patrón de Comando, por ejemplo, aunque es bueno & desacopla al que llama del receptor, no debe usarse a menos que realmente lo necesite, porque las operaciones deben expresarse usando verbos, lo que significa métodos. Y al usar comandos en todo el lugar, terminaría con un montón de OO-lambdas completamente descentralizados - > Lo mismo sería cierto para muchas estrategias.

    
respondido por el Kamil Tomšík 15.04.2011 - 07:21
10

"Patrón de diseño" es en realidad un eufemismo para "solución". Los patrones de diseño se inventaron para solucionar fallas y defectos en los idiomas OO . Por ejemplo, tome el patrón de iterador que finalmente llevó a la introducción de las colecciones en Java. Groovy se deshizo de muchos más patrones convirtiéndolos en características de lenguaje: ya no necesitas el patrón decorador porque puedes agregar métodos a las clases existentes en Groovy.

Esto significa que puedes encontrar patrones de diseño en todas partes. De hecho, todas las "mejores prácticas" pueden considerarse una forma simple de un patrón de diseño.

    
respondido por el Aaron Digulla 09.11.2011 - 09:15
9

Menciones de LtU que Jeremy Gibbons está escribiendo un libro sobre patrones en programación funcional. Consulte los Patrones en el blog de Programación Funcional del Sr. Gibbon para ver algunos ejemplos. Tenga en cuenta que recomienda leer sus publicaciones de más antiguo a más reciente.

Su artículo Patrones de diseño como programas de tipo de datos genéricos de orden superior (pdf) modela funcionalmente los patrones de Gang of Four: Compuesto, Iterador, Visitador y Generador. Describe los patrones de programación con ecuaciones recursivas en Origami Programming (se pliega y despliega).

    
respondido por el Corbin March 14.04.2011 - 16:47
8

Hay patrones de diseño SQL .

Y también existen algunos patrones de diseño funcional: consulte aquí para obtener información sobre scala.

    
respondido por el Oded 12.04.2011 - 22:36
6

En lugar de nombrar patrones de diseño que no sean oo, me gustaría darles algunos ejemplos de libros que tienen muchos patrones de diseño (en ellos algunos patrones aún serán específicos de OO):

Espero que esto ayude

    
respondido por el KeesDijk 12.04.2011 - 22:51
2

En la programación funcional (especialmente Haskell), hay muchos patrones y modismos que no se relacionan muy bien con la POO. Phantom types son un ejemplo conocido, y puedes encontrar muchas más en haskell wiki page in Idioms .

    
respondido por el yatima2975 13.04.2011 - 12:29
1

Programación modular es bastante popular para bibliotecas numéricas y aplicaciones pesadas en matemáticas (el software numérico es muy difícil de modelar usando el Patrones orientados a objetos, principalmente porque hay muy poco que se puede encapsular).

    
respondido por el quant_dev 15.04.2011 - 07:59
1

Un buen ejemplo de patrones sin OOP es mi catálogo de patrones favorito absoluto: Patrones organizativos de desarrollo de software ágil, por James O. Coplien . Este libro no trata sobre patrones de software, trata sobre personas, un catálogo para crear equipos exitosos. ¡Todos los gerentes deberían leer este libro!

    
respondido por el JuanZe 02.03.2012 - 15:11
0

Me gusta pensar en estructuras de datos como colas, listas vinculadas, árboles, gráficos, etc. como patrones. Definen ciertos patrones para almacenar datos y procesarlos. Pueden parecer primitivos en comparación con los patrones de gama más alta de Gang of Four, pero son patrones a pesar de todo. Quiero decir, ¿qué pasaría si alguien implementara una pila como FIFO en lugar de LIFO y viceversa para una cola y los nombrara de otra manera?

    
respondido por el DPD 13.04.2011 - 10:42

Lea otras preguntas en las etiquetas