15
SOLID Principies boas práticas de programação Vitor Castro quarta-feira, 22 de agosto de 12

SOLID Principies

Embed Size (px)

Citation preview

Page 1: SOLID Principies

SOLID Principiesboas práticas de programação

Vitor Castro

quarta-feira, 22 de agosto de 12

Page 2: SOLID Principies

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

Page 3: SOLID Principies

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

Page 4: SOLID Principies

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

Page 5: SOLID Principies

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

Page 6: SOLID Principies

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

Page 7: SOLID Principies

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

Page 8: SOLID Principies

+ 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

Page 9: SOLID Principies

Equivalência de reuso

• um código JAMAIS deverá ser copiado de outro código, duplicando-o

quarta-feira, 22 de agosto de 12

Page 10: SOLID Principies

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

Page 11: SOLID Principies

Reuso em comum

• O reuso deverá ser a nível de pacote

quarta-feira, 22 de agosto de 12

Page 12: SOLID Principies

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

Page 13: SOLID Principies

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

Page 14: SOLID Principies

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

Page 15: SOLID Principies

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