Quando falamos de SOLID nos referimos a cinco princípios para o bom projeto de software Orientado a Objetos.
O Conceito foi criado por Robert Martin por volta dos anos 2000.
Na modelagem e programação o SOLID tem se popularizado como um conjunto de boas práticas a serem sempre seguidas por quem deseja projetar software com qualidade.
Cada letra da palavra SOLID refere-se à inicial de cada um dos princípios do conceito, pontualmente do acrônimo (ou mnemônico) de cada um deles.
Vejamos a relação dos cinco princípios.
(S) SRP – Single Responsibility Principle
Uma classe deve ter uma, e somente uma responsabilidade (veja aqui em detalhes).
(O) OCP – Open/Close Principle
O código deve ser aberto para extensão, mas fechado para alteração (veja aqui em detalhes).
(L) LSP – Liskov Substitution Principle
Objetos devem ser substituíveis com instancias de seus tipos base sem alterar o bom funcionamento do software.
(I) ISP – Interface Segregation Principle
Várias interfaces específicas são melhores que uma única interface genérica.
(D) DIP – Dependency Inversion Principle
Devemos depender de classes abstratas, não de classes concretas.
Benefícios da utilização do SOLID
Empregando os cinco princípios da maneira correta teremos um software muito mais extensível e de fácil manutenção.
Parece simples aplicá-los, tecnicamente até é, mas considerando todo um conjunto de fatores que estão presentes num projeto de software, não é mesmo, infelizmente. Fazer bem feito, no início leva mais tempo, demanda mais cuidado. E as pessoas tem pressa (não é para ser assim).
A dificuldade na manutenção de software é um dos maiores problemas que temos atualmente com sistemas legados, e esta limitação facilmente gera um prejuízo de centenas de bilhões de dólares em todo o planeta.
/* Achar o meio termo entre software bem projetado e software “orientado ao infinitesimal” é uma luta diária. “Dividir para conquistar” é fundamental num bom projeto de software, mas dividir ao nível “atômico” é uma loucura com a qual muitos profissionais da área esbarram diariamente na tentativa fazer o melhor projeto, ou no excesso de aplicação de padrões. Separar em partes menores é recomendado desde o método científico, mas demanda muito cuidado. Quando der falarei sobre o princípio KISS para abordar esta realidade.*/
Concluindo
O SOLID proporciona um sistema com fraco acoplamento, e utilizá-lo é uma boa prática no desenvolvimento e programação de software que todo analista deve carregar como mantra!
Abraço!