더북(TheBook)

4.4.1 상태를 변경하는 작업에 정적 메서드를 사용하지 마라

정적 메서드는 런타임에 교체할 수 없으므로 디자인을 유연하지 않게 만들고 테스트를 어렵게 한다. 정적 메서드를 디자인 패턴으로 사용하면 시스템이 혼란스럽고 유지보수하기 어려워질 수 있다.

정적 메서드를 디자인 패턴으로 사용할 때 문제는 디자인이 빠르게 엉망진창이 된다는 점이다. 데이터베이스 접근을 정적 메서드에서 수행하는 시스템을 본 적이 있다. 정적 메서드가 데이터베이스를 호출하려면 활성화된 연결이 필요하다. 정적 메서드는 정적 메서드만 호출할 수 있기 때문에 활성화된 연결을 반환하는 또 다른 정적 메서드가 필요하다. 연결을 생성하려면 완전한 데이터베이스 정보가 필요하다. 이를 위해서는 데이터베이스 구성을 반환하는 또 다른 정적 메서드가 필요해진다. 이렇게 하다 보면 주입할 수 없는 정적 메서드들로 이뤄진 집합을 얻게 된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.