Skip to main content

SOLID | Artigo .NET

  • SOLID | Artigo .NET

  • S.R.P - Responsabilidade única

    • Cada classe deve ter apenas uma responsabilidade bem como uma única razão para alteração
  • O.C.P - Aberto e fechado

    • Objetos devem estar abertos para extensão, mas fechados para modificação
  • L.S.P

    • Se ‘S’ é um subtipo de ‘T’, então objetos do tipo ‘T’ podem ser substituiídos por objetos do tipo ‘S’sem que essa substituição gere efeitos colaterais na nossa aplicação
    • Uma classe pai que tem seus herdeiros, deve ser possível ser substituídas pelos seus filhos
    • HERANÇA
  • I.S.P

    • Classes não devem ser forçadas a depender de métodos que elas não utilizam
    • É melhor termos várias interfaces curtas do que poucas interfaces longas
    • Utilizar composição ao invés de usar herança
  • DIP - Dependency Inversion Principle

    • Módulos de alto nível: são as rotinas mais fáceis de entender, mais próximas da realidade de qualquer programador. Tendem a exigir menos carga mental para serem usadas;

    • Módulos de baixo nível: são as rotinas mais complexas e difíceis de entender. Geralmente são compostas de implementações de cálculos ou comportamentos específicos.

    • Módulos de alto nível não devem depender de módulos de baixo nível, ambos deveriam depender de abstrações

    • Abstrações não devem depender de detalhes, porém detalhes devem depender de abstrações

      https://www.youtube.com/watch?v=DQA6BIwslwY

      • Livro Implementing Doman Driven Design
        • A essência dessa definição diz que um componente que fornece serviços de baixo nível (camada de infra) deve depender das interfaces definidas pelos componentes de alto nível(interface do usuário, aplicação e domain)

Benefícios

alt text