SOLID Flashcards
Qual a definição do Single Responsability Principle?
“Uma classe deve ter um, e somente um, motivo para ser alterada”. Uma classe deve ser responsável apenas por ações relacionadas.
Qual a definição do Open-Closed Principle?
“Uma classe deve estar fechada para alterações mas aberta para extensões”. Toda vez que uma classe for receber uma nova funcionalidade, ao invés dessa funcionalidade ser implementada nela, essa funcionalidade deve ser implementada em uma nova classe que herda da classe “original”.
Qual a definição do Liskov Substitution Principle?
“Uma classe derivada deve ser substituível por sua classe base”.
Qual a definição do Interface Segregation Principle?
“Uma classe não deve ser forçada a implementar interfaces e métodos que não irão utilizar”. Criar muitas interfaces específicas é melhor do que criar uma interface generalista.
Qual a definição do Dependency Inversion Principle?
“Módulos de alto nível não devem depender de módulos de baixo nível. Ambos devem depender de abstrações”. Não devemos instanciar classes diretamente dentro de outras classes, mas sim, usar abstrações (classes abstratas ou interfaces).
O que são módulos de alto nível e módulos de baixo nível?
Módulos de alto nível são as classes que estão utilizando um serviço. Módulos de baixo nível são as classes que estão sendo utilizadas.