디자인 모델 6 대 원칙 5 - 디 미트 원칙
정의:
디 미트 원칙 은 '최소 지식 원칙' 이 라 고도 부른다.그 의 미 는 한 대상 이 다른 대상 에 대해 가장 적 게 알 고 있다 는 것 이다. 즉, 한 종 류 는 자신 에 대한 결합 이 필요 하 다 는 것 이다.
합 또는 호출 클래스 는 가장 적 게 알 고 있 으 며, 그것 이 제공 하 는 인터페이스 만 알 면 된다.
문제 의 유래: 클래스 와 클래스 간 의 관계 가 밀접 할 수록 결합 도가 크 고 한 클래스 가 변 할 때 다른 클래스 에 대한 영향 도 크다.
해결 방안: 클래스 와 클래스 간 의 결합 을 최대한 낮 춥 니 다.
디 미트 법칙 은 직접적인 친구 와 만 통신 한 다 는 더 간단 한 정의 도 있다.이른바 직접적인 친구: 모든 대상 은 다른 대상 과 결합 관계 가 있 습 니 다. 두 대상 간 에 결합 관계 가 있 으 면 우 리 는 이 두 대상 간 에 친구 관계 라 고 말 합 니 다.의존, 관련, 조합, 집합 등 결합 방식 이 매우 많다.그 중에서 우 리 는 구성원 변수, 방법 파라미터, 방법 반환 값 에 나타 난 종 류 를 직접적인 친구 라 고 부 르 고 국부 변수 에 나타 난 종 류 는 직접적인 친구 가 아니다.즉, 낯 선 종 류 는 국부 변수의 형식 으로 클래스 내부 에 나타 나 지 않 는 것 이 좋다.
아래 의 코드 는 방법 체 내부 에서 다른 종류 에 의존 하여 디 미트 법칙 을 심각하게 위반 했다.예 를 들 어 선생님 이 체육 위원 에 게 모든 여학생 의 수 를 확인 하 게 하 는 것 이다.
public class Teacher {
public void commond(GroupLeader groupLeader) {
List<Girl> listGirls = new ArrayList<Girl>();
for (int i = 0; i < 20; i++) {
listGirls.add(new Girl());
}
groupLeader.countGirls(listGirls);
}
}
위의 예 에서 체육 교 사 는 자신 과 직접적인 관계 가 없 는 여학생 류 를 알 게 된 것 은 허용 되 지 않 는 다.
정확 한 방법 은:
public class Teacher {
public void commond(GroupLeader groupLeader) {
groupLeader.countGirls();
}
}
public class GroupLeader {
private List<Girl> listGirls;
public GroupLeader(List<Girl> _listGirls) {
this.listGirls = _listGirls;
}
public void countGirls() {
System.out.println(" :" + listGirls.size());
}
}
수정 후 교사 와 여학생 간 강 한 결합 없 이 체육 위원 을 직접 호출 하 는 countGirls ().
주의: 한 종 류 는 친구 와 만 교류 하고 낯 선 종 류 는 교류 하지 않 습 니 다. getA (). getB (). getC (). getD () 가 나타 나 지 마 십시오.따라서 하나의 방법 은 한 클래스 에 존재 하지 않 는 대상 을 최대한 도입 하지 않 는 다. 물론 JDK API 가 제공 하 는 클래스 는 제외한다.
자기 것 이 고 자기 것 이다 만약 에 하나의 방법 이 본 류 에 놓 이면 유형 간 의 관 계 를 증가 하지 않 을 뿐만 아니 라 본 류 에 부정적인 영향 을 미 치지 않 으 면 본 류 에 둔다.
이 는 인터페이스 격 리 원칙 에서 인터페이스의 디자인 이 한계 가 있다 고 언급 한 것 처럼 디 미트 원칙 을 지나치게 사용 하면 이런 중개 와 전달 류 가 대량으로 발생 하여 시스템 의 복잡 도가 커진다.이 사례 에서 우 리 는 체육 위원 그룹 리더 류 를 통 해 전달 되 기 때문에 디 미트 법칙 을 채택 할 때 반복 적 으로 균형 을 잡 아야 한다. 구조 가 뚜렷 할 뿐만 아니 라 내부 집적 과 낮은 결합 도 해 야 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.