Soluciones estandar a problemas con sistemas orientado a objetos fundamentalmente. Conceptos de abstraccion, agrupar código de forma tal que pueda ser reutilizable. Todos tienen ventajas y desventajas.
Tipos:
-
Creacionales: inicializacion y configuracion de objetos.
-
Estructurales: van a separar la interaz de la implementación, ocuparse de las clases y objetos, cómo se pueden agrupar, cómo van a formar estructuras más complejas.
-
De Comportamiento: describen a los objetos y clases implicados y describir la comunicación entre ellos.
Se confunde con patrones de arquitectura. Por ejemplo POSA es una arquitectura de softaware orientada a patrones.
Source: Repositorio