Sobes.tech
Junior — Middle

Explique os princípios subjacentes à concepção SOLID e seu impacto no desenvolvimento de sistemas de software.

sobes.tech IA

Resposta da IA

Os princípios SOLID são um conjunto de cinco princípios fundamentais do design orientado a objetos que ajudam a criar sistemas flexíveis, escaláveis e fáceis de manter:

  1. Princípio da Responsabilidade Única (SRP) — Cada classe deve ter uma única razão para mudar, ou seja, ser responsável por uma tarefa específica.

  2. Princípio Aberto/Fechado (OCP) — As classes devem estar abertas para extensão, mas fechadas para modificação.

  3. Princípio da Substituição de Liskov (LSP) — Os objetos de uma subclasse devem poder substituir os objetos da classe base sem alterar a correção do programa.

  4. Princípio da Segregação de Interfaces (ISP) — Os clientes não devem depender de interfaces que não utilizam. É melhor ter várias interfaces específicas do que uma única interface universal.

  5. Princípio da Inversão de Dependências (DIP) — Os módulos de alto nível não devem depender de módulos de baixo nível; ambos devem depender de abstrações.

Impacto no desenvolvimento:

  • Melhora a legibilidade e a manutenção do código.
  • Facilita testes e refatoração.
  • Permite ampliar facilmente a funcionalidade sem alterar o código existente.

Exemplo de SRP:

// Ruim: a classe gerencia lógica e saída
class Report {
    public string Data { get; set; }
    public void Print() { /* saída na tela */ }
}

// Bom: separação de responsabilidades
class Report {
    public string Data { get; set; }
}
class ReportPrinter {
    public void Print(Report report) { /* saída na tela */ }
}