Son el esqueleto de las soluciones a problemas comunes en el desarrollo de software.
Patrones creacionales
-Prototype
Especifica los tipos de objetos a crear por medio de una instancia prototípica, y crear nuevos objetos copiando este prototipo.
Tiene como finalidad crear nuevos objetos duplicándolos, clonando una instancia creada previamente.
Propone la creación de distintas variantes del objeto que nuestra aplicación necesite, en el momento y contexto adecuado. Toda la lógica necesaria para la decisión sobre el tipo de objetos que usará la aplicación en su ejecución debería localizarse aquí. Luego, el código que utiliza estos objetos solicitará una copia del objeto que necesite. En este contexto, una copia significa otra instancia del objeto. El único requisito que debe cumplir este objeto es suministrar la prestación de clonarse. Cada uno de los objetos prototipo debe implementar el método Clone().
Patrones estructurales
-Adapter

Usar el patrón Adapter cuando:
* Se desea usar una clase existente, y su interfaz no se iguala con la necesitada.
* Cuando se desea crear una clase reusable que coopera con clases no relacionadas, es decir, las clases no tienen necesariamente interfaces compatibles.