Lei de Demeter parte

Post on 20-Jul-2015

1.329 views 2 download

Transcript of Lei de Demeter parte

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: joleques@gmail.com

• 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