디미터?
demeter(디미터)는 그리스 신화의 농업, 결혼, 사회 질서의 여신이다. 디미터라는 프로젝트에서 이 법칙을 발견했다고 해서 그렇게 이름 붙였다. 그 프로젝트는 소프트웨어를 '성장'시키는 방법을 사용한다. 이 법칙을 따르지 않으면 메시지 체인이란 악취가 나게 된다.
- 실용주의 프로그래머

객체 지향 프로그래밍 작업을 할 때 기본 원리로 두면 좋을 것 같아 이렇게 글을 남깁니다. 어떻게 하면 모듈화를 효과적으로 할까. 디미터 법칙이란, 어떻게 짜면 추후 생길 수 있는 수정 사항에 대해 효과적으로 대처할 수 있을까. 라는 물음을 간결하게 해결해 줍니다.

class demeter
{
A* a;
int func();
void example(B& b);
};

void demeter::example(B& b)
{
C c;
int f = func();     // 자기 자신
b.invert();         // 매서드로 넘어온 인자
a = new A();
a->SetActive(); // 자신이 생성한 객체
c.print();           // 직접 포함하고 있는 객체
}


위의 4가지 경우를 최대한 따르면 모듈간 결합도를 최소로 할 수 있습니다.
전공 서적을 읽다 소름이 돋았습니다.
개인적으로 작업 중 돋은 귀차니즘에 디미터 함수 법칙을 깨며 작업을 해왔던게 많았습니다.
구현이 최우선이나 구현 다음으로는 코드의 완성도에 최선을 다해야 겠습니다.
 
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

'직업에 관한 관심 > 프로그래머' 카테고리의 다른 글

D3D 텍스쳐 UV 애니메이션  (0) 2008/11/01
디미터 법칙  (2) 2008/09/19
닷넷 아가씨.  (2) 2008/08/22
면접.  (0) 2008/08/06
DirectX 11 출시.  (0) 2008/07/30
수면코딩  (0) 2008/07/29