Java 객체 지향 디자인 패턴
들어가기
무언가를 가능한 쉽게 익히려면 둘 중의 한가지가 필요하다.
- 무언가를 필요로 하는 컨텍스트를 직관적으로 파악할 수 있을 만큼 적절한 예제
- 무언가를 쓰기 전과 쓴 후를 비교해서 이해할 수 있는 설명
사실 어떤 것이든 직관적으로 파악할 수 있는 것이 가장 좋지만, 다루는 내용 자체가 원천적으로 복잡한 경우에는 직관적으로 알 수 있게 해주는 것이 현실적으로는 쉽지 않다.
게다가 같은 예제라도 누구에게는 직관적일 수 있지만 다른 누구에게는 직관적이지 않을 수도 있다.
이 책은 디자인 패턴의 적용 전과 후를 비교하는 설명을 친절하게 풀어주는 방법을 택해서 가능한 많은 사람들이 디자인 패턴을 좀더 쉽게 이해할 수 있게 해준다.
이래서 좋다
- 객체 지향 원리를 적용하지 않은 코드에서 출발해서 변경 사항이 생기면 코드의 어느 부분이 변경되는지 보여주므로써 문제점을 대단히 구체적으로 인식할 수 있게 해준다.
- 디자인 패턴을 적용하는 과정도 1회에 그치지 않고 단계를 밟아가며 보여주므로 디자인 패턴 적용 전의 문제점과 적용 후의 좋은 점을 속속들이 이해할 수 있게 해준다.
- 객체의 관계(연관, 의존, 집약/합성, 일반화/실체화)과 UML 다이어그램을 맛깔나게 훑어준다.
- 복합적인 사고를 요구하는 좋은 연습문제가 많다.
이래서 아쉽다
- 큰 틀에서는 훌륭한 전개 구조를 가졌지만, 꼼꼼하게 보면 아마도 실수이겠지만 틀린 곳이 군데군데 있다.
- 자주 쓰이는 패턴 10개만을 다루고 있다. 이런 전개로 GoF의 23개 패턴을 모두 다뤄줬다면 얼마나 좋았을까.
나가기
운 좋게도 최근에 이 책을 포함해서 훌륭한 객체 지향 책을 두 권이나 보게 되었다. 나머지 하나는 객체 지향의 사실과 오해다.
다음과 같이 책을 보는 것도 객체 지향을 이해하는 좋은 코스가 될 수 있을 것 같다.
- 먼저 객체 지향의 사실과 오해를 읽고 코드 없이 그림과 이야기로 객체 지향을 살펴 보고,
- 이 책을 보고 디자인 패턴과 디자인 패턴을 공부하는 방법을 익히고,
- Java 언어로 배우는 디자인 패턴 입문을 보고 이 책에 없는 패턴도 맛보고,
- 다시 객체 지향의 사실과 오해를 읽는다.