Na programação de computadores orientada a objetos, o termo SOLID é um acrônimo para cinco postulados de design, destinados a facilitar a compreensão, o desenvolvimento e a manutenção de software.
Os postulados SOLID não devem ser confundidos com as orientações conhecidas como GRASP.
De fato, os postulados SOLID foram apresentados por Robert C. Martin em um artigo publicado no ano 2000 cujo título, em tradução livre, é "Postulados de Projeto e Padrões de Projeto". O acrônimo SOLID propriamente dito teria sido cunhado mais tarde por Michael Feathers.
Os principios do SOLID são:
. | Nome do Principio | Abr. | Descrição |
---|---|---|---|
S | Single Responsibility Principle | SRP | Cada Classe ou modulo deve ter apenas uma razão para mudar |
O | Open/Closed Principle | OCP | Entidades de Software (classes, módulos, funções), devem ser abertas a extensão, mas fechadas para modificação |
L | Liskov Substitution Principle | LSP | Classes bases devem ser substituíveis pelas classes derivadas |
I | Interface Segregation Principle | ISP | Faça interfaces com alta granularidade, para cada cliente |
D | Dependency Inversion Principle | DIP | Dependa de Abstrações, não de classes concretas |