# Patrones de Diseño

![](/files/-M662tqFzLRJpDyvywRe)

> Imagen - [\[38\]](/designpatternsingo/recursos.md)

Este apartado tratará sobre ***¿Qué es un Patrón de Diseño?*** y ***¿Qué es GoF?***.

## Patrones de Diseño

En el libro de Erich Gamma et al - "Patrones de Diseño" [\[29\]](/designpatternsingo/recursos.md) - exponen la importancia y usos de los patrones de diseño en conceptos como:

* "Diseñar software orientado a objetos es difícil, y aún lo es más diseñar software orientado a objetos reutilizable".
* "Algo que los expertos saben que no hay que hacer es resolver cada problema partiendo de cero. Por el contrario, reutilizan soluciones que ya les han sido útiles en el pasado. Cuando encuentran una solución buena, la usan una y otra vez".
* "Los patrones de diseño hacen que sea más fácil reutilizar buenos diseños y arquitecturas".
* "Los patrones de diseño nos ayudan a elegir las alternativas de diseño que hacen que un sistema sea reutilizable, y a evitar aquellas que dificultan dicha reutilización. Pueden incluso mejorar la documentación y el mantenimiento de los sistemas existentes al proporcionar una especificación explícita de las interacciones entre clases y objetos y de cuál es su intención. En definitiva los patrones de diseño ayudan a un diseñador a lograr un buen diseño más rápidamente".

Como se puede observar se utilizan términos como *clases* y *objetos,* ya que los patrones de diseño están enfocados al desarrollo orientado a objetos siendo los ejemplos de su libro implementados en *C++*.

En las siguientes secciones se detallará como es posible implementar dichos patrones de diseño en *Go*.

## Contenido

* [Patrones de Diseño GoF](/designpatternsingo/parte2/patrones/gof.md)
* [Patrones de Comportamiento](/designpatternsingo/parte2/patrones/comportamiento.md)
* [Patrones Creacionales](/designpatternsingo/parte2/patrones/creacionales.md)
* [Patrones Estructurales](/designpatternsingo/parte2/patrones/estructurales.md)

> **Atención**: Esta publicación se encuentra abandonada. Puede acceder a la versión vigente en <https://leanpub.com/designpatternsingo>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://daniel-m-spiridione.gitbook.io/designpatternsingo/parte2/patrones.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
