# Patrones de Diseño

<figure><img src="https://624742151-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFRKN8coRWwuuSr24p99X%2Fuploads%2FzUGBN9IwSJwDBNChIdh8%2Fimage.png?alt=media&#x26;token=97d40f7b-7c2f-4c0e-bc9e-abbf59c32004" alt=""><figcaption></figcaption></figure>

## Tipos de patrones

<figure><img src="https://624742151-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFRKN8coRWwuuSr24p99X%2Fuploads%2FcEdEwUZPWrYpu0LaEGv9%2Fimage.png?alt=media&#x26;token=f89f3654-c9b8-40e8-b48b-ac53ea224e97" alt=""><figcaption></figcaption></figure>

### **Patrones de diseño creacional**

Se centran en la creación de objetos de manera eficiente y flexible.&#x20;

* [singleton](https://shimozurdo.gitbook.io/frontend/principios-de-diseno-de-software/patrones-de-diseno/singleton "mention")
* [factory](https://shimozurdo.gitbook.io/frontend/principios-de-diseno-de-software/patrones-de-diseno/factory "mention")
* [prototype](https://shimozurdo.gitbook.io/frontend/principios-de-diseno-de-software/patrones-de-diseno/prototype "mention")

### **Patrones de diseño estructural**

Se ocupan de la composición de clases y objetos para formar estructuras más grandes. Son los que nos ayudana separar las interfaces de la implementación.

* [facade](https://shimozurdo.gitbook.io/frontend/principios-de-diseno-de-software/patrones-de-diseno/facade "mention")
* [decorador](https://shimozurdo.gitbook.io/frontend/principios-de-diseno-de-software/patrones-de-diseno/decorador "mention")
*

### **Patrones de diseño de comportamiento**

Se centran en la comunicación entre objetos y la distribución de responsabilidades.

* [Patrón observador](https://shimozurdo.gitbook.io/frontend/angular/rxjs#patron-observador)
* [adapter](https://shimozurdo.gitbook.io/frontend/principios-de-diseno-de-software/patrones-de-diseno/adapter "mention")

### Otros

* [#inyeccion-de-dependencias](https://shimozurdo.gitbook.io/frontend/angular/fundamentos#inyeccion-de-dependencias "mention")
* [mvc](https://shimozurdo.gitbook.io/frontend/principios-de-diseno-de-software/patrones-de-diseno/mvc "mention")
* [mvvm](https://shimozurdo.gitbook.io/frontend/angular/mvvm "mention")
* [flux](https://shimozurdo.gitbook.io/frontend/principios-de-diseno-de-software/patrones-de-diseno/flux "mention")
