그동안 회사에서 혼자 스스로 개발한 부분에 TDD나 단위테스트를 도입해보고 싶은데, 어렵게 느끼고 결국 실패했던 이유를 드디어 알았다. 테스트 대상인 비즈니스로직을 서비스 layer에 특히나 책임분리가 제대로 되지 않은 상태로 모든 로직을 때려박아 넣었기 때문이었음. OOP가 제대로 적용된 구조에서 TDD도 실현될 수 있다는 것을 깨달았다.
생성자 원칙 from 엘레강트 오브젝트
클래스를 잘 설계한다면, 클래스는 많은 수의 생성자와 적은 수의 메서드를 포함할것이다. 2,3개의 퍼블릭 메서드와 5~10개의 생성자를 포함하는 것이 적당하다.
이런 기준을 두는 핵심은 응집도가 높고, 견고한 클래스에는 적은수의 메서드와 많은 수의 생성자가 존재한다.