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