4.3 너무 많은 클래스에 의존하는 클래스를 분리하라
너무 많은 의존성을 가지는 클래스를 분리하면 잠재적인 변경의 범위를 제한할 수 있다. 이 패턴은 코드 유지보수성과 유연성을 향상시키며 변경되는 시스템 요구 사항에 시스템이 더 잘 적응하게 해준다.
코드 단위는 모든 차원에서 작아야 하며, 여기에는 의존성도 포함된다. 만약 한 클래스가 10개의 다른 클래스에 의존한다면, 이 현상은 디자인에 문제가 있음을 나타내며 향후 유지보수 문제를 초래할 가능성이 있다.
기능이 복잡해지면 의존성 수가 증가한다. 기존 기능에 새로운 기능을 추가할 때 선택할 수 있는 방법이 두 가지 있다(그림 4-3 참조). 하나는 현재의 코드 단위를 확장하는 것으로, 의존성을 추가하지는 않지만 2장에서 언급한 것처럼 복잡성이 증가한다. 다른 하나는 새로운 클래스를 생성해 기존 클래스와 연결하는 것으로, 원래 기능의 복잡성을 증가시키지는 않지만 결합도가 높아진다.