티스토리 뷰

반응형

오늘은 TDD 8장 까지 스터디를 하였습니다.


8장의 내용은 Dollar와 Franc이라는 각 지역별 화폐 객체에서 Money라는 상위클래스를 추출함으로써 한 단계 추상화하고 각 코드의 중복을 제거하는 부분이었습니다. 

캔트 백은 중복을 제거하면서 상위 클래스에 펙토리 메서드를 만듭니다. 저는 이 부분이 너무 어렵게 느껴졌습니다. 과연 내가 그런 상황에서 펙토리 메서드를 생각해낼 수 있었을까 하는 의문이 들면서 말이죠.

좀 더 고민해보니까, 이런 결론을 얻었습니다. 


추상화를 하고 나서 구상 클래스 (Concrete class)와 클라이언트 코드간의 의존성을 제가하는 것은 당연한 것이다. 펙토리 메서드를 생각해 낼수 있느냐의 문제가 아니고, 구상 객체와 클라이언트 코드간의 의존성 제거를 위해서 꼭 해야하는 일이다.


캔트 백이 한 일은 어려운 발상이 아니고 SOLID를 지키기 위해서 꼭 해야하는 작업이라는 생각을 하게 되었습니다. 해당 예제에서도 의존성 제거를 통해서 의존성이 역전되었고(DIP) 그로 인해서 Dollar와 Franc 말고도 다른 KRW(원 : 한국화폐단위)이나  EUR(유로 : 유럽연합화폐단위) 등을 추가하기 쉬운 구조가(OCP)가 되었습니다.


역시 TDD 좋은 책이네요.




반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함