PatternWritingBasics

분류:번역 분류:설계패턴


KGDA와 GPGstudy 포럼에 올릴 글을 준비하다가.. 아예 Gpgiki에서 작업하는 게 나을 것 같아서요...


설계 패턴 이야기의 부록입니다...

1. 패턴의 서술 방법에 대한 몇 가지 참고 사항들

다음은 Doug Lea(1) 가 제시한 체크리스트(2)입니다.

하라는 것이 많군요... 음...

다음은 Gof(3)(Design Patterns - Elements of Reusable Object-Oriented Software라는 설계 패턴의 고전을 쓴 저자들 또는 그 책)가 제시하는 틀(4)입니다.(급하게 번역을 해서리 좀 엉망인데.. 그냥 상식적으로 생각하면 될 겁니다..)


Pattenr Name(Scope, Purpose) 패턴 이름(범위, 목적)

패턴의 이름은 그 패턴의 핵심을 간명하게 나타내야 한다. 패턴 이름은 설계 어휘의 일부가 될 것이므로 이름을 잘 정하는 것이 매우 중요하다.

Intent(의도)

이 설계 패턴이 무엇을 하는가? 근본적인 원리와 의도는 무엇인가? 이 패턴이 다루고자 설계 문제나 논점은 구체적으로 무엇인가? 같은 질문들에 답하는 짧은 문장들.

Also Known As(또 다른 이름들)

이 패턴에 대한 또 다른 잘 알려진 이름들. 있는 경우에만

Motivation(동기)

설계 문제를 묘사하며 패턴 안의 클래스와 객체 구조들이 그 문제를 해결하는 방식을 서술하는 하나의 시나리오. 시나리오는 이 패턴의 좀더 추상적인 설명을 이해하는데 도움이 된다.

Applicability(적용성)

패턴이 적용될 수 있는 상황, 패턴에 의해 해결될 수 있는 나쁜 설계의 예, 그러한 상황을 어떻게 식별할 것인가 등.

Structure(구조)

Participants(참가자들)

설계 패턴 안에 참여하는 클래스들 그리고/또는 객체들과 그들의 책임들

Participant Name(참가자 이름)

Collaborations(협동)

참가자들이 자신의 책임을 수행하기 위해 서로 협동하는 방식

Consequences(결과)

패턴이 자신의 목적을 어떻게 지원하는가? 패턴을 사용함으로써 생기는 장, 단점이나 결과는 무엇인가? 패턴을 개별적으로 변형할 수 있게 해주는 시스템 구조 상의 측면은 무언인가? 등등

Implementation(구현)

패턴을 구현할 때 주의해야 할 함정, 조언, 기법 등. 특정 언어에 해당하는 문제 등.

Known Uses(알려진 용례들)

실제 시스템들에서 발견되는 패턴의 예들. 우리(Gof)는 서로 다른 영역들로부터 적어도 두 개의 예제들을 포함시킴.

Related Patterns(관련 패턴들)

이 패턴과 밀접하게 관련된 다른 설계 패턴들은 무엇인가? 중요한 차이는 무엇인가? 이 패턴과 함께 쓸 수 있는 것들은 무엇인가? 등등


2. 몇가지 참고할 웹 자료들...

게임 프로그래밍 설계 패턴

패턴 일반


저는 깃털 하나만 건드린 셈입니다... 고수분들의 좀 더 훌륭한 패턴 이야기가 이어졌으면 합니다...


References

(1) See </http:>

(2) See

(3) See

(4) See