O que é SOLID?
O que cada letra significa + exemplos
Best Practices
Progressive enhancement
Conclusão
Quando falamos de SOLID, na verdade é S.O.L.I.D.
É uma sigla
Criado/nomeado por Michael Feathers/Robert C. Martin (Uncle Bob)
São 5 princípios
Principio da Responsabilidade Única -> Defina o Papel.
"The Open Closed principle of SOLID design states that code is open for extension but closed for modification."
Aberto para estensão, fechado para modificação.
"This principle states that objects should be replaceable with instances of their subtypes without altering the correctness of that program. "
Objetos devem poder ser substituidos por seus sub-tipos sem ter que alterar o fluxo do sistema.
"This principle states that no implementation of an interface should be forced to depend on methods it does not use. "
A implementação não devem ser obrigadas a depender de métodos que não utilizam
"This principle states that high-level code should not depend on low-level code, and that abstractions should not depend upon details. "
Necessário manter baixo o nível de acoplamento entre diferentes módulos de um sistema. Nesta solução as dependências entre os módulos não são definidas programaticamente, mas sim pela configuração de uma infraestrutura de software (container) que é responsável por "injetar" em cada componente suas dependências declaradas. A Injeção de dependência se relaciona com o padrão Inversão de controle mas não pode ser considerada um sinônimo deste.