Como en cualquier campo de estudio o trabajo hay soluciones ya creadas por otras personas que son utilizadas como si de una misma herramienta se tratara, en el software esto no es diferente por lo que los vemos presentes todo el tiempo. Esta pagina web lo explica de una manera excelente y gráfica así que te recomiendo mucho visitarla.

Hay tres tipos :
- Creacionales: Mecanismos de creación para objetos.
- Estructurales: Funcionan para conectar objetos y clases en software mas extenso.
- Comportamiento: Conexión o comunicación entre objetos.

La historia de estos patrones es bastante larga pero realmente se popularizo con el “The GoF book”, fue un libro que se popularizo por ser tan completo en este tema y por un nombre tan largo que en su momento se volvió un meme. Te dejo la liga para comprarlo en Amazon, al parecer es de los libros mas recomendados en nuestro campo.
Una ultima cosa que agregar es que existe el Anti Patrones de diseño, que aunque suena a gente que no le agradan estas practicas de hecho es mas bien el como no usarlas. Un Anti Patrón de diseño es por ejemplo crear un objeto dios en algún lenguaje orientado objetos. Un objeto dios es aquel con una gran cantidad de métodos y atributos que rompe con los parámetros de simplicidad de la programación orientada a objetos.

Si quieres indagar mas en el tema esta pagina te ofrece un articulo mucho mas completo de Patrones de Diseño.
