S.O.L.I.D Flashcards
O que é SOLID?
5 princípios que facilitam o processo de desenvolvimento, sendo principalmetne aplicados em POO
Qual a importância do SOLID?
Promove a criação de um código limpo, flexível e de fácil manutenção
Quais os benefícios que o SOLID traz?
Reduz complexidade, aumenta reusabilidade, melhora a qualidade geral da aplicação
O que é o S?
Responsabilidade Única
- uma classe deve ter apenas 1 motivo pra mudar
- ter apenas uma responsabilidade e faze-la muito bem
Quando o princípio S não for aplicado, quais problemas podemos ter?
Dificuldade em manutenção, reutilização, alterações e número excessivo de dependencias
Quais benefícios temos aplicando o S?
Baixo acoplamento, código modulável e fácil de testar
Que tipo de analogia podemos fazer para entendermos o princípio S?
Em uam empresa temos diversos cargos, como CONTADOR, RH e DESENVOLVEDOR. Caso alguém tentasse fazer tudo, ficaria confuso e complicado de manter.
O que é o O?
Aberto-Fechado
- Classe deve estar fechada para modificação mas aberta para extensão
- Adicionar funcionalidade sem modificar o código existente
Quais os benefícios do O?
Torna o código mais flexível e extensível
Quais formas de aplicar esse princípio?
Através de interfaces, classes abstratas ou Strategy Pattern
Que analogia podemos fazer para explicar o principio O?
Temos um celular, quando queremos adicionar uma nova funcionalidade (um app), podemos instalar o mesmo, sem precisar abrir o celular para modificar os componentes internos.
O que é o I?
Interface Segregation
- Uma classe não deve ser forçada a utilizar interfaces que não precisam
- Criar interfaces específicas aos invés de genéricas
Quais os benefícios ao aplicarmos o I?
Implementacao de métodos relevantes e menos poluição no código
O que é o D?
Inversão de Dependência
- Depender de abstrações ao invés de implementações concretas
O que define o princípio D?
- Módulo de alto nível nao deve depender de módulo de baixo nível
- Abstrações nao devem depender de detalhes, detalhes devem depender de abstrações