Your SlideShare is downloading. ×
0
Princípio law of demeter
Princípio law of demeter
Princípio law of demeter
Princípio law of demeter
Princípio law of demeter
Princípio law of demeter
Princípio law of demeter
Princípio law of demeter
Princípio law of demeter
Princípio law of demeter
Princípio law of demeter
Princípio law of demeter
Princípio law of demeter
Princípio law of demeter
Princípio law of demeter
Princípio law of demeter
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Princípio law of demeter

866

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
866
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Princípio Law Of Demeter<br />(Lei de Demeter)<br />Grupo: Gladson Otávio<br /> Emerson Roger<br />
  • 2. A lei de Demeter é um conjunto de regras para construir sistemas visando baixo acoplamento, também conhecida como Princípio do menor Conhecimento e Fale somente com os amigos.<br />Princípio<br />
  • 3. <ul><li>Cada unidade deveria somente utilizar um conjunto limitado de unidades de outras unidades.
  • 4. Cada unidade deveria falar somente com seus amigos e não com estrangeiros. </li></ul>Em Aspectos Gerais<br />
  • 5. Um método M de um objeto O somente poderia acessar métodos de outros objetos que sigam as diretrizes: <br /><ul><li> Seja parâmetro de M
  • 6. Um objeto que M criou
  • 7. Um método do próprio objeto O
  • 8. Objeto diretamente relacionado com o objeto O
  • 9. Uma variável global acessível pelo objeto O</li></ul>Em orientação a objeto<br />
  • 10. infringindo o princípio<br />
  • 11. Dentro da classe jornaleiro, há um método chamado coletarPagamento(), cuja finalidade é coletar pagamento dos clientes, pelos produtos vendidos. Vamos analisar este método e descobrir como como ele infinge a lei de demeter.<br />Infringindo o principio (LOD)<br />
  • 12. //o método coletar pagamento sem atender o principio LOD<br />public void coletarPagamento() { <br /> for (Cliente cliente : clientes) {<br />if (cliente.getMinhacarteira().getValor()>= nota) { cliente.getMinhacarteira().subtractValor(nota);<br /> fundoColeta += nota; <br /> }<br />else {<br /> System.out.println("Sem dinheiro,anotar divida ");<br /> }<br /> }<br /> }<br />
  • 13. Acoplamento indesejado:<br />Alterações nas classes dependentes:<br />Mais resposabilidades para a classe:<br />Problema que forte acoplamento pode causar<br />
  • 14. As dependências criada pelo método<br />
  • 15. Como resolver esse problema?<br />
  • 16. 1º - Ex cluir Método getMinhacarteira() da classe Cliente.<br />2º - Criar um método fazerPagamento() na mesma classe.<br />public class Cliente {<br /> private String firstName;<br /> private String lastName;<br /> private Carteira minhacarteira;<br />// construtores {...}<br />// metodo criado para o cliente fazer o pagamento.<br />public double getFazerPagamento(double nota) {<br />double valorPago = 0;<br /> if (minhacarteira.getValor() >= nota) {<br /> minhacarteira.subtractValor(nota);<br /> valorPago= nota;<br /> }<br /> return valorPago;<br />}<br />// get and seters{...}<br />// public Carteira getMinhacarteira() { return minhacarteira; }<br />
  • 17. public void coletarPagamento() { <br /> for (Cliente cliente : clientes) {<br /> double pagamento =cliente.getFazerPagamento(nota);<br /> if (pagamento !=0) {<br />fundoColeta += pagamento;<br /> }<br /> }<br />}<br />3º - Alterar o método coletarPagamento() da classe jornaleiro para que ele acesse o método getFazerPagamento() da classe cliente.<br />
  • 18. Atendendo ao princípio (LOD)<br />
  • 19. Dar para aplicar o princípio para todos os projetos?<br />
  • 20. Exemplo onde o princípio não se aplicaria:<br />
  • 21. A atitude comum entre os desenvolvedores sugere que que as vezes elementos de coesão e acoplamento são teorias irreais, e acaba atrasando o trabalho. Contudo, tenho a percepção de que as qualidades positivas de coesão e acoplamento servirão para preservar a produtividade do código ao longo do tempo.<br />Conclusão<br />

×