📄️ General
Conceptos de diseño orientado a objetos.
📄️ Single Responsibility Principle
Un módulo de software tiene una, y sólo una, razón para cambiar.
📄️ Open-closed Principle
Un artefacto de software debe estar abierto para extensión pero cerrado para modificación.
📄️ Liskov Substitution Principle
Si para cada objeto o1 de tipo S hay un objeto o2 de tipo T tal que para todos los programas P definidos en términos de T, el comportamiento de P no cambia cuando se sustituye o2 por o1, entonces S es un subtipo de T.
📄️ Interface Segregation Principle
No se debe obligar a ningún código a depender de métodos que no utiliza.
📄️ Dependency Inversion Principle
Los sistemas más flexibles son aquellos en los que las dependencias del código fuente se refieren únicamente a abstracciones, no a concreciones.