34

Lei de Demeter parte

Embed Size (px)

Citation preview

Page 1: Lei de Demeter parte
Page 2: Lei de Demeter parte
Page 3: Lei de Demeter parte

Como assim além das classes?

Page 4: Lei de Demeter parte

Atributos Objetos Classes

Polimorfismo

Herança

Encapsulamento

Page 5: Lei de Demeter parte

Base

Page 6: Lei de Demeter parte

Universo OO

Page 7: Lei de Demeter parte

Base

Princípios

GRASP

GoF DDD

Testes Unidade

BDD

TDD Refactory Clean Code

Leis

Page 8: Lei de Demeter parte

Tudo Isso além das classes?

Page 9: Lei de Demeter parte

Simmmm............

Page 10: Lei de Demeter parte

Base

Princípios

GRASP

GoF DDD

Testes Unidade

BDD

TDD Refactory Clean Code

Leis

Page 11: Lei de Demeter parte

Base

Princípios

GRASP

GoF DDD

Testes Unidade

BDD

TDD Refactory Clean Code

Leis

Page 12: Lei de Demeter parte

Lei de Demeter

Page 13: Lei de Demeter parte

Você não pode conversar com estranhos.

Page 14: Lei de Demeter parte

Como

assim???

Page 15: Lei de Demeter parte

Não nos comunicamos com a par te (pernas)

Page 16: Lei de Demeter parte

Regra é simples.

Page 17: Lei de Demeter parte

Objetos só podem enviar mensagens para...

Page 18: Lei de Demeter parte

• Próprio• Seus atributos• Parâmetro passado• Objeto Criado

Page 19: Lei de Demeter parte

Exemplo por

favor?

Page 20: Lei de Demeter parte

public void metodoFragil() {Desconto desconto = venda.getPagamento().

.getProduto().calcularDesconto();

// Segue implementação}

Page 21: Lei de Demeter parte

venda.getPagamento().getProduto().calcularDesconto();

Page 22: Lei de Demeter parte

venda.getPagamento().getProduto().calcularDesconto();

Page 23: Lei de Demeter parte

venda.getPagamento().getProduto().calcularDesconto();

Dependência de Pagamento e Produto

Page 24: Lei de Demeter parte

Aplicando a lei

Page 25: Lei de Demeter parte

venda.getPagamento().getProduto().calcularDesconto();

Quem são os Estranhos?

Page 26: Lei de Demeter parte

venda.getPagamento().getProduto().calcularDesconto();

Estranhos

Page 27: Lei de Demeter parte

venda.calcularDesconto();

Não conversamos com Estranhos

Page 28: Lei de Demeter parte

public void metodoRobusto() {Desconto desconto = venda.getDesconto();

// Segue implementação

}

Page 29: Lei de Demeter parte

Eu uso

sempre isso?

Page 30: Lei de Demeter parte

Não!Somente em objetos.Em estrutura de dados não é necessário.(DTO,POJO...)

Page 31: Lei de Demeter parte

Mas Qual a Vantagem disso?

Page 32: Lei de Demeter parte

Projeto possuira• Menor dependência• Baixo Acoplamento• Mais fácil manter• Mais fácil evoluir

Page 33: Lei de Demeter parte

• Email: [email protected]

• Twitter : @jorgeoleques

• Blog : joleques.blogspot.com

• GiHub : github.com/joleques

• Slideshare : www.slideshare.net/jorgeoleques

Obrigado!!!

Page 34: Lei de Demeter parte

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