O S.O.L.I.D é um acrônimo que representa cinco princípios da programação orientada a objetos e design de código teorizados por Uncle Bob (Robert C. Martin) por volta do ano 2000.
São eles:
- [S]ingle Responsibility Principle (Princípio da Responsabilidade Única): uma classe deve ter apenas um motivo para mudar (única responsabilidade).
- [O]pen/Closed Principle (Princípio do Aberto/Fechado): entidades de software (classes, módulos, funções, etc) devem estar apenas abertas para extensão, mas fechadas para modificação.
- [L]iskov Substitution Principle (Princípio da Substituição de Liskov): uma classe base deve poder ser substituida pela sua classe derivada.
- [I]nterface Segregation Principle (Princípio da Segregação de Interfaces): muitas interfaces específicas são melhores do que uma interface geral.
- [D]ependency Inversion Principle (Princípio da Inversão de Dependências): módulos de alto nível não devem depender de módulos de baixo nível, ambos devem depender de abstração (dependa de uma abstração e não de uma implementação).
SOLID.SRP: demonstrado através de um diário.
SOLID.OCP: demonstrado através de um filtro por produto.
SOLID.LSP: demonstrado através do retângulo e quadrado.
SOLID.ISP: demonstrado através de uma impressora.
SOLID.DIP: demonstrado através de relacionamentos entre pai e filhos.