Patrones de diseño. Design patterns en C# y java

En Algoritmos | Diseño por
abril 25, 2019 8:25 pm

Publicación en edición, actualmente se están creando ejemplos por cada patrón de diseño, la actualización se hará el 27 de abril…

Un patrón de diseño es una solución general a un problema común en el desarrollo de software, cabe resaltar que no es un diseño terminado que se puede trasformar directamente en codigo, es una plantilla que ayuda a resolver un problema repetitivo.

Uso de patrones de diseño

Los patrones de diseño pueden acelerar el proceso de desarrollo al proporcionar paradigmas de desarrollo probados y comprobados.  La reutilización de patrones de diseño ayuda a prevenir problemas sutiles que pueden causar problemas importantes y mejora la legibilidad del código para codificadores y arquitectos familiarizados con los patrones.

A menudo, las personas solo entienden cómo aplicar ciertas técnicas de diseño de software a ciertos problemas. Estas técnicas son difíciles de aplicar a una gama más amplia de problemas. Los patrones de diseño proporcionan soluciones generales, documentadas en un formato que no requiere detalles vinculados a un problema en particular.

Además, los patrones les permiten a los desarrolladores comunicarse utilizando nombres conocidos y bien entendidos para las interacciones de software. Los patrones de diseño comunes pueden mejorarse con el tiempo, lo que los hace más robustos que los diseños ad-hoc.

Patrones creacionales

  Abstract Factory Crea una instancia de varias familias de clases.
  Builder Separa la construcción del objecto de su representación.
  Factory Method Crea una instancia de varias clases derivadas.
  Prototype Una instancia completamente inicializada para ser copiada o clonada.
  Singleton Una clase de la que solo puede existir una instancia.

 

Patrones estructurales

  Adapter Coincidir con las interfaces de diferentes clases.
  Bridge Separa la interfaz de un objeto de su implementación.
  Composite Una estructura de arbo de objectos simples y compuestos.
  Decorator Añadir responsabilidades a los objectos dinámicamente.
  Facade Una sola clase que representa un subsistema completo.
  Flyweight Una instancia de objecto ligero utilizada para compartir de manera eficiente.
  Proxy Un objecto que representa otro objeto.

 

Patrones de comportamiento

  Chain of Resp. Una forma de pasar una solicitud entre una cadena de objectos.
  Command Encapsular una solicitud de comando como un objeto
  Interpreter Una forma de incluir elementos del lenguaje en un programa.
  Iterator Acceder secuencialmente a los elementos de una colección.
  Mediator Define la comunicación simplificada entre clases
  Memento Captura y restaura el estado interno de un objeto.
  Observer Una forma de notificar cambios a varias clases.
  State Alterar el comportamiento de un objeto cuando cambia su estado.
  Strategy Encapsula un algoritmo dentro de una clase.
  Template Method Diferir los pasos exactos de un algoritmo en subclases.
  Visitor Define una nueva operación para una clase sin cambios.

98 visitas