결합도_(content coupling)

결합도 (coupling)

내용결합 (content coupling)

제일 높은 결합도 모델

컨텐츠 결합은 한 모듈이 다른 모듈의 코드를 사용할 때 발생한다고 말합니다.

이는 정보 숨기기를 위반하는 것으로, 기본 설계 개념입니다.

아래의 코드를 보시면 Builder class에 userAbInfoList를 AbCampaignSelector 에서 직접 참조 하고 있습니다.

내용 결합은 캡슐화에 따라 제거 할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 

public class AbCampaignSelector {
private List<Map<String, String>> userAbInfoList;

public AbCampaignSelector(Builder builder) throws EmptyException {
// 쿠키로 조회
if(CollectionUtils.isEmpty(builder.userAbInfoList) ) {
throw new EmptyException("ab Empty Exception!!");
}
userAbInfoList = builder.userAbInfoList;
}

public static class Builder{
private List<Map<String, String>> userAbInfoList;
public Builder(List<Map<String, String>> userAbInfoList) {
this.userAbInfoList = userAbInfoList;
}

public AbCampaignSelector build() throws EmptyException {
return new AbCampaignSelector(this);
}

}
}