Upload
jorge-oleques
View
1.329
Download
2
Embed Size (px)
Citation preview
Como assim além das classes?
Atributos Objetos Classes
Polimorfismo
Herança
Encapsulamento
Base
Universo OO
Base
Princípios
GRASP
GoF DDD
Testes Unidade
BDD
TDD Refactory Clean Code
Leis
Tudo Isso além das classes?
Simmmm............
Base
Princípios
GRASP
GoF DDD
Testes Unidade
BDD
TDD Refactory Clean Code
Leis
Base
Princípios
GRASP
GoF DDD
Testes Unidade
BDD
TDD Refactory Clean Code
Leis
Lei de Demeter
Você não pode conversar com estranhos.
Como
assim???
Não nos comunicamos com a par te (pernas)
Regra é simples.
Objetos só podem enviar mensagens para...
• Próprio• Seus atributos• Parâmetro passado• Objeto Criado
Exemplo por
favor?
public void metodoFragil() {Desconto desconto = venda.getPagamento().
.getProduto().calcularDesconto();
// Segue implementação}
venda.getPagamento().getProduto().calcularDesconto();
venda.getPagamento().getProduto().calcularDesconto();
venda.getPagamento().getProduto().calcularDesconto();
Dependência de Pagamento e Produto
Aplicando a lei
venda.getPagamento().getProduto().calcularDesconto();
Quem são os Estranhos?
venda.getPagamento().getProduto().calcularDesconto();
Estranhos
venda.calcularDesconto();
Não conversamos com Estranhos
public void metodoRobusto() {Desconto desconto = venda.getDesconto();
// Segue implementação
}
Eu uso
sempre isso?
Não!Somente em objetos.Em estrutura de dados não é necessário.(DTO,POJO...)
Mas Qual a Vantagem disso?
Projeto possuira• Menor dependência• Baixo Acoplamento• Mais fácil manter• Mais fácil evoluir
• Email: [email protected]
• Twitter : @jorgeoleques
• Blog : joleques.blogspot.com
• GiHub : github.com/joleques
• Slideshare : www.slideshare.net/jorgeoleques
Obrigado!!!
Referencias
• Martin, Rebert C., Clean Code• Larman, Craig, Utilizando UML e Padrões• http://en.wikipedia.org/wiki/Law_of_Demeter• http://weblogs.asp.net/andrenobre/archive/200
9/02/18/princ-237-pios-de-oop-a-lei-de-demeter-lod.aspx