ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OOP] Law of Demeter: 최소 지식 원칙
    프로그래밍 2024. 7. 11. 19:04

    최소 지식 원칙, 소프트웨어 개발을 위한 가이드라인 중 하나이며, 특히 느슨한 결함(loose coupling)을 위한 방법 중 하나이다.

     

    ## 1987년, Ian Holland에 의해  제안되었다.

    요약해보면,

    • 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
      (오직 가까운 친구와 대화해라.)

    ## Use only one dot

    이 원칙에 따르면 한 객체는 함수에 의해 리턴된 다른 객체의 메소드를 사용하지 말아야 한다현대 객체지향언어에서  .  을 필드 구분자로 사용하게 되는데, 데메테르의 원칙은 간단히 말해 "Use only one dot"(오직 하나의  .   만 사용해라) 란 의미로 표현 될 수 있다.

     

    이 말은

    •  a.getB().getC().doSomething()   -- (X)
    •  a.doSomething()   -- (O)

    로 될 수 있다.

     

    다른 예시로,

    강아지가 걷는것으로 비유를 해보자면,

    사람이 강아지를 걷게하고 싶을 때

    강아지 다리에다 걸으라 명령하지 말고

    강아지 보고 걷게하라는 것.

    getDog().getLeg().walk()  // 최소지식 원칙 - X
    getDog().walk()	// 최소지식 원칙 - O

     

Designed by Tistory.