-
[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
'프로그래밍' 카테고리의 다른 글
[OOP] 디자인 패턴 - Decorator Pattern(데코레이터 패턴) (0) 2024.07.17 [OOP] 디자인 패턴 - Strategy Pattern(전략 패턴) (0) 2024.07.16 - Each unit should have only limited knowledge about other units: only units "closely" related to the current unit.