Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
- [rheh](https://github.com/rheh) - Suggestion - Brooks's Law
- [Two-Jay](https://github.com/Two-Jay) - PR - The Law of Demeter
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
* [스포티파이 모델](#스포티파이-모델)
* [와들러의 법칙](#와들러의-법칙)
* [휘턴의 법칙](#휘턴의-법칙)
* [디미터의 법칙](#디미터의-법칙)

* [원칙](#원칙)
* [딜버트의 법칙](#딜버트의-법칙)
Expand Down Expand Up @@ -621,6 +622,25 @@ _성급한 최적화_ 란 (좁은 의미로) 그것이 꼭 필요한지 알기

<br>

### 디미터의 법칙

[The Law of Demeter](https://www2.ccs.neu.edu/research/demeter/demeter-method/LawOfDemeter/general-formulation.html)

> 낯선 이와 대화하지 말라.
>
> 화자 미상

최소 지식 원칙이라고도 부르는 디미터의 법칙은, 객체지향 프로그래밍에서 책임에 대한 캡슐화와 느슨한 커플링을 다룰 때에 중요하게 여겨지는 법칙이다. 이는 특정한 객체의 메소드에서 정보를 다룰 때 직접적으로 알고 있는 대상만을 호출함으로써 책임이 적절하게 분배되지 않거나 복잡한 커플링을 가져서 발생하는 문제를 방지할 수 있도록 유도한다.

디미터의 원칙에 따르면 호출하는 객체가 c이고 메소드가 f 일때 객체의 메소드 f는 아래의 4가지만 호출할 수 있다.

- c, 즉 객체 자기자신
- f가 생성한 객체
- f에 매개변수로 전달된 모든 정보
- 객체 c의 인스턴스에 저장된 필드

<br>

## 원칙

원칙들은 일반적으로 설계의 가이드라인과도 같다.
Expand Down