2009. 4. 7. 11:46

BowlingGame을 다시 한번 구현해봤습니다.

지난번 소스 코드 리뷰에서 박성철님의 좋은 의견을 주셔서 그대로 다시 한번 구현해봤습니다. 이번에도 기존의 소스 코드를 모두 날리고 새로 구현했습니다.

확실히 Frame과 상태관리하는 클래스를 구분했더니 구현이 훨씬 깔끔하고 명확해졌습니다. Pin 클래스에서 처리하던 많은 부분도 제거할 수 있었고요. 그리고 http://www.javajigi.net/pages/viewpage.action?pageId=208699660 에 있는 객체 지향 생활 체조를 가능한 지키려고 노력했습니다. 물론 몇가지는 지키지 못한 것도 있습니다. 생각보다 쉽지 않더군요. 아직 객체 지향 기반으로 개발하는데 실력이 부족하다는 것을 느꼈지만 또한 새로운 것을 많이 느낄 수 있는 기회였습니다..

소스 코드 저장소 : svn://www.opensprout.org/repos/tdd/javajigi/trunk/BowlingGame

스터디는 끝났지만 혹시 참고하실 분들은 보시라고 공유합니다. 그리고 테스트를 가능하도록 하기 위해서 Dependency Injection으로 추출해야 할 부분들이 생겼는데 구현 안된 부분이 있습니다. 다음 번에는 DI 기반으로 한번 다시 구현해봐야겠습니다. 소스 코드가 점점 더 커지고 클래스가 분리되면서 은연중에 단위 테스트가 아니라는 생각이 들때가 생기더라고요. 어느 시점에 넘어서야 할지가 참 힘든 점인 듯 합니다.

그리고 소스 코드 보시다가 조언할 부분이 있으면 언제든지 환영합니다. 많은 의견 주셨으면 좋겠습니다.