Los patrones de diseño son soluciones probadas para problemas recurrentes en el desarrollo de software. Los ejemplares como el patrón de estrategia permiten definir una familia de algoritmos, encapsularlos y hacerlos intercambiables.
Los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.