SOLID Flashcards
(12 cards)
O que é rigidez?
Rigidez é a tendência de um sistema para resistir as mudanças.
O que é Fragilidade ?
Fragilidade é a tendência de um sistema de quebrar de formas inesperadas e inexplicáveis.
O que é imobilidade?
imobilidade é a incapacidade de reutilizar componentes de software.
Como evitar que o sistema fique inter-relacionado?
Gerenciamento de dependência e Inversão de dependência
Single Responsability Principle
Uma classe/modulo deve ter uma e apenas uma razão para mudar. Um ator é a fonte da mudança. Pode ser um usuário ou vários.
The Open-Close Principle
Um artefato de software deve ser aberto para extensão mas fechado para modificação.
Como modificar o comportamento sem modificar o código para estar de acordo com o Open-close principle?
Através de inversão de dependência. Separando entre módulos de níveis alto e níveis baixo e fazendo com que os módulos de níveis mais baixos apontem para abstrações. E os módulos de alto níveis também apontem para abstrações.
The liskov substituition principle
subtipos (classes derivadas) devem ser substituíveis por suas classes base (superclasses) sem alterar a correção do programa
The interface segregation principle
Não depender de coisas que não precisa.
Dependency Inversion Principle (DIP):
Módulos de alto nível não devem depender de módulos de baixo nível. Ambos devem depender de abstrações. Abstrações não devem depender de detalhes, e detalhes devem depender de abstrações.
Quais são todos os SOLID principles
Single Responsibility Principle (SRP):
Open/Closed Principle (OCP):
Liskov Substitution Principle (LSP):
Interface Segregation Principle (ISP):
Dependency Inversion Principle (DIP):
use case
É aquilo que eu exponho para um driver(Autor primerio: usuário humano, aplicativo de celular etc), seja para um teste, seja para uma API, seja para uma fila.