O documento descreve 11 princípios de boas práticas de programação SOLID, incluindo o princípio da responsabilidade única, aberto/fechado, substituição de Liskov, segregação de interfaces e inversão de dependência.
1. SOLID Principies
boas práticas de programação
Vitor Castro
quarta-feira, 22 de agosto de 12
2. 5 princípios
• Princípio da responsabilidade única
• Princípio do aberto/fechado
• Princípio da substituição de Liskov
• Princípio da segregação de Interfaces
• Princípio da inversão de dependência
quarta-feira, 22 de agosto de 12
3. Responsabilidade Única
• Responsabilidade é uma tarefa ou
ação que a classe de realizar
• A classe deve possuir uma única
responsabilidade
quarta-feira, 22 de agosto de 12
4. Aberto/Fechado
• Trabalha diretamente com a
manutenção de classes
• “Classes devem ser abertas para
extensão, mas fechadas para
manutenção”
• Uso de herança e classe abstratas que
se diferenciam através de tipos
comuns
quarta-feira, 22 de agosto de 12
5. Inversão de Dependência
• Toda classe de auto nível seja
completamente independente de suas
subclasses.
• As classes não podem depender dos
detalhes da implementação de seus
métodos e classes.
• Uso de interfaces para acoplar as
classes.
quarta-feira, 22 de agosto de 12
6. Substituição de Liskov
• A classe base deve poder ser
substituida pela sua classe filha
• Uso de sobrecarga de método
quarta-feira, 22 de agosto de 12
7. Segregação de interfaces
• Um interface não pode forçar uma
classe a implementar um método que
não pertence a ela.
• Criar interfaces exutas.
quarta-feira, 22 de agosto de 12
8. + 6 princípios
• Princípio da equivalência de reuso
• Princípio do escopo em comum
• Princípio do reuso em comum
• Princípio da dependência acíclica
• Princípio de dependência estáveis
• Princípio de abstrações estáveis
quarta-feira, 22 de agosto de 12
9. Equivalência de reuso
• um código JAMAIS deverá ser copiado
de outro código, duplicando-o
quarta-feira, 22 de agosto de 12
10. Escopo em comum
• Classes devem possuir
responsabilidades únicas.
• Em nível de pacote, classes com
responsabilidades em comum devem
ser organizadas no mesmo pacote.
quarta-feira, 22 de agosto de 12
11. Reuso em comum
• O reuso deverá ser a nível de pacote
quarta-feira, 22 de agosto de 12
12. Dependência acíclica
• Dependência mínima entre os pacotes
• Uso de interfaces para diminuir o
acoplamento entre pacotes
quarta-feira, 22 de agosto de 12
13. Dependência estáveis
• Pacote menos estável deve ser ligado
em um pacote mais estável
• Estável = coesos
quarta-feira, 22 de agosto de 12
14. Abstrações estáveis
• Enfatiza a criação de pacotes
abstratos
• Implementação de classe que não
dependam de classes concretas
quarta-feira, 22 de agosto de 12
15. Referências
• Utilização dos princípios SOLID na
aplicação de Padrões de Projeto,
edição nº 50 da Engenharia de
Software Magazine;
quarta-feira, 22 de agosto de 12