Lei de Demeter parte

jorgeoleques 5,362 views 34 slides Aug 06, 2013
Slide 1
Slide 1 of 34
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34

About This Presentation

No description available for this slideshow.


Slide Content

Orientação a Objetos Além das classes

Pós-Graduando Eng. Software Graduado Analise e Desnv . Sistemas Desenvolvedor PHP Desenvolvedor Java Email : [email protected] Twitter : @ jorgeoleques Blog : joleques.blogspot.com GiHub : github.com/ joleques Slideshare : www.slideshare.net/jorgeoleques Jorge Oleques

Como assim além das classes?

Atributos Objetos Classes Polimorfismo Herança Encapsulamento

Base

Universo OO

Princípios Leis Padrões Técnicas

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 parte (pernas)

Regra é simples.

Objetos só podem enviar mensagens para...

Próprio Seus atributos P arâmetro passado Objeto Criado

Exemplo por favor?

p ublic 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

p ublic 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!!!
Tags