11. Open–Closed Principle
“Entidades de software (classes, módulos, funções, etc.)
devem ser abertas para extensão,
mas fechadas para modificação.”
12.
13.
14.
15. Liskov Substitution Principle
“Se para cada objeto o1 do tipo S existe um objeto o2 do tipo T,
tal que, para todos os programas P definidos em termos de T,
o comportamento de P fica inalterado quando o1 é substituído por o2,
então S é um subtipo de T.”
“Os subtipos devem ser substituíveis pelos seus tipos de base.”
25. Dependency Inversion Principle
“Os sistemas mais flexíveis são aqueles em que as
dependências de código-fonte
se referem apenas as abstrações e não a itens concretos,
ou seja módulos de alto nível não devem
depender de módulos de baixo nível.”