DesignPatternSmalltalkCompanion:1.7
1.7 본 책에 사용된 규약
책에 사용된 규약은 거의 없으며, 있더라도 간단하게 사용된다. 해설 문단 중에 코드의 일부나 클래스 이름, 메서드 이름을 포함시킬 경우 이렇게 표기할 것이다. 설명 도중에 예제 코드 오프셋을 제공할 때는 다음과 같이 나타난다:
Class>>method: parameter
"This is a sample instance method."
^self == parameter
코드 예제에서 메서드 이름에는 대부분의 Smalltalk 디버거에서 이용하는 규약을 사용할 것이다:
ClassName>>methodName
즉 메서드 이름은 ">>" 우측에, 메서드가 위치하는 클래스는 ">>" 좌측에 표시한다. 따라서 클래스 메서드는 다음과 같은 형태를 가지게 된다:
Class class>>method
"This is a sample class method"
^self basicNew initialize
이 책은 디자인 패턴의 구체적인 페이지를 자주 참조한다. 그리고 원본 패턴을 소개한 페이지를 참조하는 각 패턴의 제목을 표시할 것이다. 디자인 패턴의 페이지를 참조한 경우 "DP nn," 으로 표기되며, 여기서 nn 은 페이지 수를 의미한다ㅡ예를 들어, "이것은 DP 84 에 나타난 C++ 코드와 일치한다." 등이 있다
마지막으로, 본 서적에 사용된 다이어그램 대다수는 GoF 책에 사용된 규약과 동일하다. 예를 들어, OMT 스타일의 클래스와 객체 다이어그램뿐만 아니라 (Rumbaugh et al., 1991) 상호 다이어그램(la Jacobson et al. (1992)을 포함하고 있다. 표기에 대한 괜찮은 출처를 디자인 패턴 부록 B 에서 제공하고 있지만, 이 책에서는 이러한 구문과 의미를 분명히 밝히기 위해 해당 내용은 주석으로 제공한다.
이 책의 클래스 다이어그램은 pseudocode의사(擬似)코드 또는 실제 Smalltalk 코드로 중요한 메서드에 대한 표기법을 향상시킴과 동시에 전체 OMT 표기명의 하위집합을 포함한다. 특정 클래스는 다음과 같이 클래스 다이어그램에 그려져 있다. 인스턴스 변수와 메서드 이름은 선택적이지만, 본 책에서는 명확한 의미전달을 위해 생략한다.
OMT 스타일의 클래스 다이어그램은 다음과 같은 기본 형태를 가진다:
클래스 다이어그램을 확실히 보여주는 예를 하나 더 들어보자:
상호작용 다이어그램은 객체들 간의 동적인 런타임 상호작용을 설명한다:
객체 다이어그램은 인스턴스 구조(의 일부)와 두 개 또는 그 이상의 인스턴스가 어떻게 관련되는지 (일반적으로 인스턴스 변수 참조에 의해) 보여준다. 객체 다이어그램은 메시지 전송과 같은 동적 정보는 표현하지 않는다.
책에서는 필요 할때마다 각각 다른 다이어그램 표기법을 사용하고 있다. 예를 들어, State 패턴의 논의에서는 객체 또는 시스템이 위치할 수 있는 다양한 상태를 비롯해서, 상태 간 전이를 강요하는 메시지나 이벤트가 적힌 연결 링크를 보여주는 상태 전이 다이어그램을 이용해서 설명하는 것이 유용했다. 모든 표기법은 따로 설명이 필요 없을만큼 명백하게 표기되어 있거나, 본문에서 설명되어 있다.
부디 Smalltalk Companion 을 즐기고, 그 결과로 학습할 수 있기를 바란다. 본문의 내용이 비록 생소하더라도 어느샌가 "아, 맞아, 이전에 이 패턴을 사용한 적이 있어,"라고 말하는 자신을 발견할 것이다. 숙련된 Smalltalk 이용자라 하더라도 학습할 내용은 많을 것이다. 당신이 새로운 내용을 학습했다면 이 책은 성공한 것이다.