Software Design Patterns

I’m translating this:

Patrones de diseño

Ya que has aprendido lo básico de programación orientada a objetos realmente solo te falta por aprender:

  • Clases ya hechas en Java para no tener que programar algo que ya esta hecho y saber qué puedes usar en cada momento y que no. Lo reservo para un glosario al final del cursillo puesto que puedes comprobarlos en cualquier momento en el javadoc (manual de clases de Java https://docs.oracle.com/javase/8/docs/api/ . Estan catalogadas por paquetes. Un paquete es una colección de clases con un orden lógico dentro de un proyecto. Por ejemplo, yo en NetBeans dentro del proyecto „curso“ tengo un package por cada tema/proyecto del curso).
  • Patrones de diseño: Ante problemas comunes se usan soluciones típicas para cada uno. Los patrones de diseño son soluciones estándar y probadas ante cierto tipo de problemas. Una serie de clases que relacionadas de cierta forma y con ciertas funciones que hacen algo, te permiten realizar soluciones.
    • Estructuras de datos: Para muchos no son patrones de diseño pero entran en la descripción. Lo que lo diferencia respecto a los patrones de diseño es que sirven más como distintas formas de guardar los datos en vez de tratarlos.
  • Algoritmos: Te permiten resolver problemas de forma rápida y efectiva.

Vamos a ver los „originales“, los primeros en salir y más tarde veremos otros mas modernos:

Creacionales (crean objetos o dicen como son)

  • Abstract Factory
  • Builder
  • Factory Method
  • Prototype
  • Singleton

Estructurales (Resuelven problemas composición de clases y objetos)

  • Adaptador
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy

De comportamiento (solucionan problemas sobre cómo interactúan entre sí los objetos)

  • Chain of Responsability
  • Command
  • Interpreter
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template method
  • Visitor

Leave a Reply