El diseño del software se basa en comenzar a codificar con un plan (en lugar de comenzar escribiendo código). Trata de conducir a la perfección la creación del sistema. Un buen diseño genera un software robusto, con buenos atributos de calidad y preparado para el futuro.
Los principios SOLID son guías para el desarrollo de software con la intención de crear un software de calidad, aplicando buenas prácticas, para eliminar malos diseños que llevan a un software caótico, difícil de mantener.
Representan soluciones a problemas comunes, aplicables a diferentes problemas de diseño en distintas circunstancias. Se categorizan según su propósito: Creacionales, Estructurales y de Comportamiento.
Definen la manera de crear un objeto. Abstraen los detalles de la creación, ayuda a crear un sistema independiente de cómo se crean, se componen y se representan los objetos.
Se centran en la forma de combinar las clases y los objetos para formar estructuras más grandes, y así poder resolver problemas complejos.
Los patrones de comportamiento tienen que ver con algoritmos y con la asignación de responsabilidades a objetos.