SOLID – Princípios para um bom projeto Orientado a Objetos

SOLID - Princípios para um bom projeto Orientado a ObjetosQuando 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.

SOLID - Princípios para um bom projeto Orientado a Objetos - eBook sobre Requisitos de Software

(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!

SOLID