Design Patterns

FrontPage|FindPage|TitleIndex|RecentChanges| UserPreferences P RSS
프로그램 디자인의 패턴언어. 보통 동명의 책을 지칭하기도 한다. 최근에 한국어판이 나왔다.

[ISBN-0201633612] [ISBN-8945071067]

한국어판은 출판되기 전까지 "Erich Gamma의 디자인 패턴"이라는 웃지못할(나머지 세 명의 공저자가 서러워할) 서명을 갖고 있었다가 출간이 되면서 "GoF의 디자인 패턴"으로 바뀌었다.

{{|
ChristopherAlexander Says, "Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice". Even though Alexander was talking about patterns in buildings and towns, what he says is true about object-oriented design patterns.
...
Design patterns are not about designs such as linked lists and hash tables that can be encoded in classes and reused as is. Nor are they complex, domain-specific designs for an entire application of subsystem. The design patterns in this book(Design Patterns - Elements of Reusable OO Software) are descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context.

A design pattern names, abstracts, and identifies the key aspects of a common design structure that make it useful for creating a reusable object-oriented design. The design pattern identifies the participating classes and instances, their roles and collaborations, and the distribution of responsibilities. Each design pattern focuses on a particular object-oriented design problem of issue.

&From ''Design Patterns - Elements of Reusable Object-Oriented Software'', Erich Gamma et al. &
|}}

Q: GoF는 무슨 뜻인가요? 원서 보다가 번역서 제목이 특이해서 훑어봤는데 알수가 없었습니다.
A: 이 책의 저자 4명을 Wiki:GangOfFour라는 애칭으로 부릅니다. 줄여서 GoF 라고 이 바닥의 은어로 자리잡은 셈이지요.

Q: 이 책의 내용과 번역상태, 원서와 번역서중 어느것을 택하겠는가 등등 간단한 평을 해주세요
A: 원서는 읽었고, 한국어판은 약간만 봤습니다. 원서로 읽어도 어렵지 않고, 한국어판이 특별히 좋은 건 잘 모르겠습니다. 저와 비슷하게 원서를 본 친구는 심지어 원서에는 있는데 말이 어려워서 한국어판에는 아예 번역이 안된 문장도 발견했다더군요. --지양
A2: 번역서가 그리 좋지 못합니다. 지양님이 말씀하셨듯이 빠져있는 문장도 있고요. 애매한 번역도 있고요. 한역판 출판사가 피어슨에듀케이션 코리아인데요. 이쪽에서 번역되어 출간된 다른 책들 중에서 괜찮은 것은 아직 못 만나봤습니다. EffectiveJava, SoftwareCraftsmanship 의 번역도 그리 좋지 못했습니다. --홍차중독

GoFDesignPatterns가 잘 이해가 안되시는 분은 'Java 언어로 배우는 디자인 패턴 입문'을 먼저 읽어보심이 어떨까 합니다. 조금 더 쉽게 읽을 수 있는듯 합니다.
EffectiveJava의 경우 대웅미디어 라는 곳에서 새로 번역이 되어 나왔더군요. 번역이 조금 더 괜찮은 듯 합니다. 역자주도 꽤 있고, 조금 더 구어체에 가깝습니다만, 이 책 역시 번역이 매우 뛰어나다고는 말하지 못하겠네요. 자간도 더 넓어서 눈이 덜 아픕니다. 피어슨의 EffectiveJava는 너무 빽빽하게 편집되어 있어 눈이 조금 아프더군요. 몇분 훑어본지라 자세히는 말씀을 못드리겠습니다. 시간이 나면 조금 더 본 후에 추가하겠습니다. :) - 현수


Q: M. J. Dominus라는 사람이 [http]"Design Patterns" Aren't라는 글에서
{{|
No. The point of the talk is this: The "design patterns" you get from the Gang-of-Four book are not the same as the idea of "design patterns" that are put forward in Alexander's books. People say they are, but they aren't the same thing. Alexander's idea is a really good one, one that programmers might find useful. But very few programmers are going to find out about it, because they think they already know what it is. But they actually know this other idea which happens to go by the same name.

So (once again) we need to take a fresh look at Christopher Alexander.
|}}
라는 말을 하는 데요. 어떤가요. 이 사람의 의견이 맞는 걸까요?

A: 네. 저는 그렇다고 생각합니다. 컴퓨터를 하는 사람들은 특히 자존심이 강합니다. 그래서 다른 분야를 잘 쳐다보려고 하지 않습니다. 디자인 패턴을 공부하거나 가르치는 사람 중에 ChristopherAlexander의 저작을 인용문이 아니라 원전을 통해 직접 접한 사람이 얼마나 될까요. see also Xper:DesignPatterns, Seminar:DesignPatterns, ZeroPage:HowToStudyDesignPatterns, Jim Coplien과 Richard Gabriel의 글과 저서들. --김창준



"; if (isset($options[timer])) print $menu.$banner."
".$options[timer]->Write()."
"; else print $menu.$banner."
".$timer; ?> # # ?>