14
by Ismael Soares @rkmael Law of Demeter

Law of demeter

  • Upload
    ismael

  • View
    341

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Law of demeter

by Ismael Soares @rkmael

Law of Demeter

Page 2: Law of demeter

What’s it?The  Law  of  Demeter  (LoD)  or  principle  of  least  knowledge  is  a  design  guideline  for  developing  software  

(https://en.wikipedia.org/wiki/Law_of_Demeter)

Page 3: Law of demeter

The OriginThe  guideline  was  proposed  at  Northeastern  University  towards  the  end  of  1987

Page 4: Law of demeter

Demeter is not a man, is a Greek goddess!

It  is  so  named  for  its  origin  in  the  Demeter  Project,  an  adaptive  programming  and  aspect-­‐oriented  programming  effort.

It means a philosophy of bottom-up

Page 5: Law of demeter

LoD Principle:• Each  unit  should  have  only  limited  knowledge  about  other  units:  

only  units  "closely"  related  to  the  current  unit.  

• Each  unit  should  only  talk  to  its  friends;  don't  talk  to  strangers.  

• Only  talk  to  your  immediate  friends.

Page 6: Law of demeter

Advantages:• More  maintainable  

• More  adaptable  

• Less  dependence  

• Very  useful  in  layered  architecture  

Page 7: Law of demeter

Disadvantages:• More  code  

• In  some  cases,  this  can  add  noticeable  time  and  space  overhead  

Page 8: Law of demeter
Page 9: Law of demeter

Bad Example

Fonte: https://www.javacodegeeks.com/2012/06/demeter-law.html

Page 10: Law of demeter

Good Example

Page 11: Law of demeter
Page 12: Law of demeter
Page 13: Law of demeter