solidInCsharp icon indicating copy to clipboard operation
solidInCsharp copied to clipboard

SOLID em C#

Este repositorio foi criado para suportar o treinamento sobre princípios de SOLID em C#.

SOLID é um conjunto de princípios e boas práticas para desenvolvimento em Linguagens Orientadas a Objetos. Os princípios foram criados em 2000 por Robert C. Martin, e o acrônimo SOLID foi criado 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

O projeto aqui mostrado é um serviço REST, que, no commit inicial. viola estes princípios. Em cada Commit, ataco um dos princípios, corrigindo sua implementação.

A descrição das mudanças se encontra nos links abaixo:

  • 1 - SRP - Principio da responsabilidade única - Commit: 67e908a
  • 2 - OCP - Principio Aberto/Fechado.md - Commit: ad89266
  • 3 - LSP - Principio da Substituição de Liskov - Commit: 8e04fae
  • 4 - ISP - Principio de Segregação de Interfaces - Commit: 8b0f804
  • 5 - DIP - Principio da Inversão de Dependencia - Commit 15972e8