Skip to content

📚 Repositório de estudos voltado aos Princípios de Padrões Orientado a Objetos: SOLID.

License

Notifications You must be signed in to change notification settings

alexandredorea/SOLID

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Princípios da Programação Orientação a Objetos: SOLID

Introdução

SOLID é um acrônimo dos cinco primeiros princípios da programação orientada a objetos e design de código identificados por Robert C. Martin (ou Uncle Bob) por volta do ano 2000. O acrônimo SOLID foi introduzido por Michael Feathers, após observar que os cinco princípios poderiam se encaixar nesta palavra.

Lembrando também que além destes 5 princípios Robert C. Martin também mapeou 3 outros princípios sobre Coesão e mais outros 3 sobre Acoplamento, mas não serão abordados neste repositório.

Objetivo

Os padrões SOLID são considerados uma boa prática de programação orientada a objetos que visam diminuir o acoplamento entre classes e separar responsabilidades como forma de melhorar o código da aplicação desenvolvida. Neste sentido, este pequeno projeto apresentará os padrões que compõem o SOLID - ou seja - este pequeno repositório tem a intenção de demonstrar a teoria e a prática, bem como a violação de cada um dos princípios, como utilizar os mesmos para a solução e demonstrar como o SOLID pode lhe proporcionar um melhor design de código facilitando a manutenção e o teste.

Aqui estão uma breve descrição sobre eles:

Letra Sigla Nome Definição
S SRP Single Responsibility Principle (Princípio da Responsabilidade Única) Uma classe deve ter um, e somente um, motivo para ser alterada.
O OCP Open / Closed Principle (Princípio do Aberto/Fechado) Você deve ser capaz de estender um comportamento de uma classe, sem modificá-lo.
L LSP Liskov Substitution Principle (Princípio da Substituição de Liskov) As classes base devem ser substituíveis por suas classes derivadas.
I ISP Interface Segregation Principle (Princípio da Segregação de Interfaces) Muitas interfaces específicas são melhores do que uma interface única.
D DIP Dependency Inversion Principle (Princípio da Inversão de Dependência) Dependa de uma abstração e não de uma implementação.

Justificativas

Os princípios SOLID devem ser aplicados para se obter os benefícios da orientação a objetos, tais como:

  • Seja fácil de se manter, adaptar e se ajustar às constantes alterações exigidas pelos clientes;
  • Seja fácil de entendimento e testar;
  • Seja construído de forma a estar preparado para ser facilmente alterado com o menor esforço possível;
  • Seja possível de ser reaproveitado;
  • Que atenda realmente as necessidades dos clientes para o qual foi criado;

Utilizando os princípios SOLID é possível evitar problemas muito comuns como:

  • Dificuldade na testabilidade / criação de testes de unidade;
  • Código macarrônico, sem estrutura ou padrão;
  • Dificuldades de isolar funcionalidades;
  • Duplicação de código, uma alteração precisa ser feita em N pontos;
  • Fragilidade, o código quebra facilmente em vários pontos após alguma mudança;
  • Erros, Falhas e Defeitos.
    • Falha: resultado ou manifestação de um ou mais defeitos (diferença indesejável entre o observado e o esperado (defeito encontrado));
    • Erro (error): indica que certas funcionalidades do software não estão se comportando como especificado (engano cometido por serer humanos);
    • Defeito (failure): é a manifestação do erro, seja através de uma tela com uma mensagem para usuário, etc. (resultado de um erro encontrado num código ou num documento).

Referências

  1. Os Princípios de Padrões Orientado a Objetos
  2. Princípios e Padrões de Projetos
  3. SOLID, Wikipedia

About

📚 Repositório de estudos voltado aos Princípios de Padrões Orientado a Objetos: SOLID.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages