[Design Pattern]GoF 의 Design Pattern - Design Pattern
클리스터퍼 알렉산더는 ‘패턴은 어떠한 전후 관계에서 발생되는 문제점에 대한 해결법’ 이라고 말했다.
패턴은 문제점들의 동기를 설명하는 하나의 방법이다.
분류 |
설명 |
이름(Name) |
모든 패턴은 자신을 식별하는 유일한 이름을 가진다. |
의도(Insert) |
패턴의 목적이다. |
문제점(Problem) |
패턴이 해결하고자 하는 문제점이다. |
해결법(Solution) |
패턴이 나타나는 전후 관계에서 발생하는 문제점에 대한 해결 방법을 제공하는 방법이다. |
관계자(Participant)와 협력자(Collaborator) |
패턴과 관계되는 개체들이다. |
결과(Consequence) |
패턴을 이용한 결과이다. 패턴에서 동작하는 영향력들을 조사한다. |
구현(Implementation) |
패턴이 구현되는 방법이다. 주의:구현은 단지 패턴의 구체적인 명시에 불과하며 패턴 그 자체로 해석되어서는 안된다. |
GoF 레퍼런스 (Gang of Four) |
좀더 많은 정보를 GoF 책의 몇 페이지에서 얻을 수 있는가에 대한 내용이다. (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides) |
디자인 패턴을 공부하면 다음과 같은 사항을 몸으로 익힐 수 있다.
. 공통적으로 반복해서 발생하는 문제점에 대해 기존에 존재하고 있던, 높은 품질의 해결법을 재상용한다.
. 팀 동료들과의 의사소통을 향상시키기 위한 공통의 용어를 확립한다.
. 사고의 수준을 좀더 높은 관점으로 전환한다.
. 올바른 설계를 가지고 있는지, 아니면 단지 동작만 하는지를 판단한다.
. 개인과 팀의 학습을 향상시킨다.
. 코드의 수정 가능성을 향상 시킨다.
. 패턴이 명시적으로 이용되지 않는다고 하더라도, 향상된 설계 대안들의 적응을 용이하게 한다.
. 대량의 상승 계층 구조에 대한 대안을 발견한다.