|
오래간만에 완독을 포기한 책이 또 나왔다…[ 책의 2/3 읽고 책을 내던졌다 --; ] 디자인패턴이라는 주제가 다소 이해하기 힘들긴 하지만 책 내용자체가... 영진에 나온 “자바로 배우는 디자인 패턴”에 비하면 명확성 및 설명이 많이 부족한 느낌이다 그중 가장 거슬리던 것은 명확하고 쉬운 예를 든다기보다 이상한 회사의 폭죽에 관한 특성이 많이 가미된 설계를 예를 들기 때문에 , 가끔 패턴에 대한 이해를 하려고 노력하는 시간보다 폭죽과 그에 관련된 부분을 이해하는 시간이 더 걸려 주객전도(主客顚倒) 현상이 벌어지기도 하였다
또한 C++ 프로그래머로써는 상당히 애로 사항이 많았다 자바에 특정 라이브러리중심으로 설명하는부분과 지나치게 많은 클래스간의 상호참조 부분, 특히 이부분은 … 내가 짜는 설계 방식과 너무 달라서 이해하기 너무 힘들었다. 아니 이해가 안된다기 보다 이해는 되지만 이렇게 짜는게 더 나쁘다는 판단이 들었기 때문인거 같다… 특히나 “클래스간 상호 참조를 사용하지 않고도 그 패턴을 사용이 가능”한데도 불구하고 억지스럽고 짜증날만큼!, 굳이 상호참조로 패턴을 설명하는 부분은 짜증이 폭발할 지경에 이르었다고나 할까?
자바에서는 후방 참조도 자유롭게 사용가능하지만 원칙상으로 C++에서는 전방 참조만 가능하기 때문에 되도록이면 상호참조를 피하고 , 설계가 원칙적으로 단방향 스타일로 가는 경향이 있는데 , 너무 자바스럽게 양방향으로 참조하는 패턴을 보여주려고 하니, C++를 사용하는 본인으로썬, 인내심의 한계를 느끼게 되었다
[근데 내가 왜이리 상호참조에 대해 거부를 하는지 의문을 가지는 분도 있으리라 생각한다 나름대로의 철학?적 이유를 설명하자면…. 상호 참조를 할 경우 클래스간의 의존도가 높아지는 경향이 있기 때문에 , 클래스간에 결합이 심화 되어 , 한쪽 클래스 코드 수정이 이루어질 경우 양 클래스 모두에서 이루어져야 하는 경향이 있고, 클래스가 따로 떨어져서는 존재할수 없기 때문에 하나의 컴포넌트 중심의 개념으로 클래스를 설계하는 나로써는 책의 생각과 ‘코드’가 맞지 않았다고 볼수 있다]
하지만 그렇다고 책이 잘못되었다고는 보기 힘들다 자바의 표준 라이브러리에 속에 녹아 있는 패턴들을 연구함으로서 표준 라이브러리 설계에 사용될정도로 , 패턴의 중요성을 부각시키는데 한몫했다고 볼수 있고 , 전문 자바프로그래머라면 , 표준라이브러리를 패턴의 시점에서 이해하기에 좋았다고 볼수 있다 그리고 위에 말한 상호참조의 불편함?은 자바프로그래머들에게는 오히려 자유로운 설계 방식일수 있기 때문에 , 이건 사람마다 설계의 철학이 다르므로써 오류라고 보기 힘들다
따라서…. 나름대로 영진 출판사의 자바의 배우는 디자인 패턴 의 후속판이라 생각하고 공부하면 꽤 도움이 될만 하였고 패턴을 공부함에 있어서는 크게 무리가 있다고 보아진 않는다 자바 프로그래머라면 별 4개정도 ,?
그럼 좋은 선택을 하시기 바라며..
|