Patrones de diseño

Que són los Patrones de diseño del Software

En el mundo de la programación escuchamos bastante a menudo hablar sobre "Patrones de diseño" y la primera vez, las preguntas que nos hemos hecho todos son las mismas. ¿Qué son y para qué sirven?
Podemos definir un patrón de diseño, como una base para la búsqueda de soluciones a problemas que encontramos comúnmente durante el desarrollo de software. Para que una solución sea considerada un patrón, debe haberse demostrado en otras ocasiones su efectividad y que esa misma solución es reutilizable para cualquier situación similar.
Podemos encontrar 3 tipos fundamentales de patrones: de creación, estructurales y de comportamiento, además de un cuarto tipo que utilizaremos para aplicaciones concurrentes. Paso a listar los patrones más conocidos.
En futuros posts, iré explicando los patrones uno por uno, con ejemplos de implementación y explicando cuando y porqué los utilizaremos. No lo hago en este post directamente porque se haría demasiado largo y pesado de leer, así que he preferido ir paso a paso y hacer primero una primera introducción.

Relación de Patrones:

  • 1 Patrones de creación
    • 1.1 Patrón Factory (Factoría)
    • 1.2 Patrón Abstract Factory (Factoría Abstracta)
    • 1.3 Patrón Builder (Constructor)
    • 1.4 Patrón Singleton (Instancia 
      • Shallow copy
      • Deep Copy
    • 1.5 Patrón Prototype (Prototipo)
    • 1.6 Patrón Lazy initialization
    • 1.7 Patrón Multiton
    • 1.8 Patrón Object Pool
  • 2 Patrones estructurales
    • 2.1 Patrón Adapter (Adaptador)
    • 2.2 Patrón Bridge (Puente)
    • 2.3 Patrón Composite (Composición)
    • 2.4 Patrón Decorator (Decorador)
    • 2.5 Patrón Facade (Fachada)
    • 2.6 Patrón Front Controller
    • 2.7 Patrón FlyWeight
    • 2.8 Patrón Proxy
    • 2.9 Patrón Module
  • 3 Patrones de comportamiento
    • 3.1 Patrón Blackboard
    • 3.2 Patrón Chain of responsibility (Cadena de Responsabilidad)
    • 3.3 Patrón Command (Comando)
    • 3.4 Patrón Interpreter (Intérprete)
    • 3.5 Patrón Iterator (Iterador)
    • 3.6 Patrón Mediator (Mediador)
    • 3.7 Patrón Memento (Recuerdo)
    • 3.8 Patrón Null Object
    • 3.9 Patrón Observer (Observador)
    • 3.10 Patrón Servant
    • 3.11 Patrón Specification
    • 3.12 Patrón State (Estado)
    • 3.13 Patrón Strategy (Estrategia)
    • 3.14 Patrón Template (Plantilla)
    • 3.15 Patrón Visitor (Visitante)
  • 4 Patrones para aplicaciones concurrentes
    • 4.1 Patrón Active Object
    • 4.2 Patrón Balking
    • 4.3 Patrón Binding properties
    • 4.4 Patrón Messaging design pattern (MDP)
    • 4.5 Patrón Double-checked locking
    • 4.6 Patrón Event-based asynchronous
    • 4.7 Patrón Guarded suspension
    • 4.8 Patrón Lock
    • 4.9 Patrón Monitor object
    • 4.10 Patrón Reactor
    • 4.11 Patrón Read-write lock
    • 4.12 Patrón Scheduler
    • 4.13 Patrón Thread pool
    • 4.14 Patrón Thread-specific storage
    • 4.15 Patrón Unit of Work
Referencias:
Para estudiar todo el tema de patrones, estoy utilizando la información disponible en los siguientes enlaces, los cuales os recomiendo si queréis meteros a fondo en el estudio de patrones de diseño:

2 comentarios:

Unknown dijo...

Hola, el articulo parece muy prometedor si hubiera link explicando cada patron. Algunos me suenan de nombre y sobre el resto me gustaria leer algo. Podrias subir al menos un link de cada uno con alguna explicacion ?

jacanales dijo...

Hola. Este post era el primero de una serie que tenía pensado escribir, pero por falta de tiempo no he podido hacerlo.

Poco a poco lo iré completando explicando cada uno de los patrones.

Gracias por el comentario.

Publicar un comentario