Um objeto é coeso quando faz
exatamente o que se propõe, sem
ir além disso
Exemplos
Exceço de pontos de mundaça em
classes diferentes indicam falta
de coesão
COESÃO
O - Open-Close
Pcincípio Aberto-Fechado
Aberto à extensão / Fechado para Modifcação
A ideia qui é criar "interfaces" e
classes que implementam a
interface.
Caso seja necessário realizar uma
MODIFICAÇÃO (correção ou melhoria),
refatore a respectiva classe.
Caso seja Necessário adicionar um novo
comportamento NOVO, crie uma nova classe
implementando a mesma interface utilizadas
nas demais
O uso de interface fecha
para modificiação
Não é possível alterar
o comportamento
em um ainterface
Estrategy
L - Liskov Substituition Principle
Substituição de LIskov
Exemplos
Quadro e Retêngulo
Add Exceção no Filho
O filho deve ser capaz de
executar as mesmas
operações e retornar o
mesmo resultado que o
pai
EXCEÇÃO
Foco nas ações!!!!
(idependentimento
do estado)
Implementação correta da Herança
Alteração em
comportamentos do filho
não podem afetar o
comportamento do pai
durante a execução
(polimorfismo)
I- Interface Segregation
Princípoio da Segregação de Interface
Evitar interfaces gordas
Interfaces que têm muitos
comportamentos
trazendo complexidade e dificuldade
de manutenção ao código.
Facorecer interfaces magras
INTERFACES MAGRAS
https://pingback.com/codepwr/solid
Princípios
D - Dependency Inversion
Classes de níveis mais altos
(que executam uma ação
com uma ferramenta) não
devem depender de classes
de níveis mais baixos
(necessárias para executar a
ação).
Ambas devem depender da
abstração (interface que
contém ambas).
Princípio da Inversão de Dependência
A abstração não deve depender de detalhes
(como a ferramenta funciona), e sim o
contrário - detalhes depende da abstração.
Reduzir a
dependência entre
os níveis através
da utilização da
interface.