2011-03-03 3 views
9

일반적으로 생성자 기반 종속성 주입을 사용하고 싶지만 최근에는 다른 4 클래스에 의존하는 클래스에서 작업하고있었습니다. 긴 인수 목록은 읽기가 어렵 기 때문에 4-args 생성자를 4 명의 설정자로 바꿨습니다."너무 많은 의존성"이 코드 냄새입니까?

내가 동료에게 이것을 언급했을 때, 그는 이것이 그 자체가 코드 냄새라고 주장했다. 그는 내가이 수업을 "깰"것을 제안했다.

클래스 자체는 비교적 작습니다. 대부분의 작업을 수행하기 위해 여러 명의 공동 작업자가 사용됩니다. 이것은 4 명의 공동 작업자를 호출하는 짧은 (공백을 포함하여 ~ 12 행) 메소드로 구성됩니다. 이것이 코드 냄새라는 주장에 동의 하느냐, 동의하지 않습니까? 얼마나 많은 의존성이 "너무 많습니까"를 결정하는 데 사용할 수있는 객관적 측정 방법이 있습니까? 이것이 순환 적 복잡성, 응집력, 커플 링 등과 같은 측정 기준과 어떤 관련이 있습니까?

답변

3

당신이 말한대로 당신의 질문에 관해서는 그렇습니다. 하지만 조금 더 복잡해 지는데, 6 개월 후이 코드를 사용하면 코드를 읽은 후 처음 2-3 분 안에 그 코드를 얻을 수 있습니까? 코드베이스의 다른 부분을보고 이해해야합니까? 공동 작업자를 수정하려면이 클래스를 수정해야합니까? 이 수업을 다른 엔지니어 (특히 새로운 엔지니어)에게 2-4 문장으로 설명 할 수 있습니까? 이것들을 모두 결정하는 데 도움이됩니다.

나는 이것을 결정하기 전에 고려해야 할 무형물이 있다는 점을 확인하려고합니다. 그것은 경험의 문제이며 일반적으로 동의 한 규칙을 적용하지 않는 것을 알 때를 배우는 것이 중요합니다.

관련 문제