SqueakByExample:2.3: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(SBE 클래스SBECell정의하기 페이지 추가)
 
m (Onionmixer 사용자가 SqueakByExample:2.4 문서를 SqueakByExample:2.3로 옮겼습니다.: 페이지 이름 오류)
(No difference)

Revision as of 03:36, 13 August 2012

클래스 SBECell 정의하기

물론 아직까지, 새로운 카테고리에 어떤 클래스도 들어있지 않지만, 그러나, 새로운 클래스를 쉽게 만들 수 있도록 메인 편집 패널(the main editing pane)이 탬플릿을 표시합니다. (그림 2.3을 보십시오)

이 템플릿은 NameofSubClass라 불리는 서브클래스를 만들기 위해 오브젝트라 불리는 클래스에 요청을 하여, 그 클래스에 메시지를 보내는 스몰토크 표현식(Smalltalk expression)을 우리에게 보여줍니다. 새로운 클래스는 아무 변수도 갖고 있지 않지만, 카테고리 SBE-Quinto에 반드시 소속되어 있어야 합니다. 우리는 단지 우리가 정말로 원하는 클래스를 만들기 위해 탬플릿을 수정합니다.


Squeak comment.png다음과 같이 클래스 생성 템플릿(the class creation template)을 수정합니다.


  • SimpleSwitchMorph로 오브젝트를 교체합니다.
  • SBECell로 NameOfSubClass를 교체합니다.
  • mouseAction을 인스턴스 변수의 목록에 추가합니다.


결과는 반드시 클래스 2.1과 같아야 합니다.


클래스 2.1: 클래스 SBECell 정의하기

SimpleSwitchMorph subclass: #SBECell                                                                          
instanceVariableNames: 'mouseAction'                                                                           
classVariableNames: ''                                                                                         
poolDictionaries: ''                                                                                            
category: 'SBE--Quinto'


이 새로운 정의는 SBECell이라 불리는 서브 클래스를 만들도록 요청하는 메시지를 현존하는 클래스 SimpleSwitchMorph에 보내는 스몰토그 표현식으로 구성되어 있습니다. (실제로, SBECell은 아직까지 존재하지 않으므로, 우리는 앞으로 만들 클래스의 이름을 나타내는 인수 심볼 #SBEcell을 전달(pass)하였습니다) 우리는 또한 마우스가 셀 위에서 클릭 될 때, 새로운 클래스의 인스턴스가, 셀이 어떤 동작을 해야할 지를 지정하기 위해 사용할 mouseAction 인스턴스 변수를 새로운 클래스가 갖도록 표현식을 입력할 것입니다.

지금까지, 여러분은 여전히 아무것도 만들지 않았습니다. 클래스 탬플릿 패널의 경계가 빨강색으로 변경되어 있는 것에 주목해 주십시오. (그림 2.4) 이 빨강색은 저장되지 않은 변경사항이 있다는 것을 뜻합니다. 실제로 이 메시지를 보내려면 여러분은 반드시 accept 를 클릭해야 합니다.


Squeak comment.png클래스 정의를 수락(accept)합니다.


그림 2.4: 클래스 생성 탬플릿(The class-creation Template)

노랑-클릭 또는 accept 선택 중 한가지를 실행하거나 바로가기 메뉴 CMD-S를 사용합니다. [“save”(저장)을 위해] 메시지는 새로운 클래스가 컴파일 되도록 원인을 제공하는 SimpleSwitchMorph에 보내질 것입니다. 일단 클래스 정의가 수락되면, 그 클래스는 제작되고 브라우저의 클래스 패널(그림 2.5)에 나타납니다. 편집 패널은 클래스 정의를 보여주고, 그 밑의 작은 패널은 여러분이 클래스의 목적을 기술하는 약간의 단어를 기록하실 것을 요청할 것입니다.

이것은 클래스 주석(class comment)라 불리며, 다른 프로그래머들에게 클래스의 고급 개요(high level overview)를 제공하는 상당히 중요한 역할을 감당합니다. 스몰토크 사용자는 그들의 코드의 신뢰성(readability)에 매우 높은 가치를 부여하며, 메소드에 상세한 주석을 기입하는 것은 일상적이지 않습니다: 이러한 철학은 ‘코드는 그 자체로 그 역할을 증명한다’는 것을 함의합니다(만약 코드가 코드 자체로 그 역할을 증명하지 못할 때에는, 여러분은 그 코드가 그러한 역할을 수행할 때까지 다시 작성해야 합니다.)

클래스 주석(class comment)는 그 클래스의 세부적인 설명을 포함할 필요가 없지만, 그것의 전체적인 목적을 설명하는 몇 개의 단어는 필수적입니다. 그 이유는 여러분 뒤에 어떤 프로그래머가 그 클래스를 사용한다면, 그 클래스를 들여다 보기 위해 시간을 소모해야 할 지의 여부를 알아야 할 필요가 있기 때문입니다.


Squeak comment.pngSBEcell을 위한 클래스 주석(class comment)를 타이핑하고, 그것을 수락(accept)합니다. 그 내용은 언제든지 다시 수정하여 개선시킬 수 있습니다.

Notes