<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=SmalltalkBestPracticePatterns%3A8.3</id>
	<title>SmalltalkBestPracticePatterns:8.3 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=SmalltalkBestPracticePatterns%3A8.3"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=SmalltalkBestPracticePatterns:8.3&amp;action=history"/>
	<updated>2026-05-02T01:27:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=SmalltalkBestPracticePatterns:8.3&amp;diff=3563&amp;oldid=prev</id>
		<title>Onionmixer: SBPP 8.3 시작하기 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=SmalltalkBestPracticePatterns:8.3&amp;diff=3563&amp;oldid=prev"/>
		<updated>2013-07-29T10:19:04Z</updated>

		<summary type="html">&lt;p&gt;SBPP 8.3 시작하기 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;8.3 시작하기&lt;br /&gt;
&lt;br /&gt;
==시작하기==&lt;br /&gt;
&lt;br /&gt;
첫 번째로 Money에 Simple Superclass Name(간단한 슈퍼클래스명)를 적용한다. 이는 가치를 단일 화폐로 표시한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
Class: Money&lt;br /&gt;
    superclass: Object&lt;br /&gt;
    instance variables: amount currency&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Role Suggesting Instance Variable Name를 이용한 변수 &amp;quot;amount&amp;quot;는 어떤 오래된 Number도 보유할 것이다. 이는 숫자의 정확성과 안정성 문제를 Number 클래스로 미루도록 해준다. 뛰어나게 정확하지만 속도는 느린 Money를 원할 경우 Amount를 FixedPoint로 만들 수 있다. 정확성은 떨어지지만 빠른 속도를 원할 경우 Double을 사용할 수 있다. 양이 숫자와 같은 메시지에 응답하는 한 Money는 신경 쓰지 않을 것이다. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;currency&amp;quot; 변수는 이제 화폐의 이름, Symbol을 보유할 것이다. 외환 딜러는 세계 화폐에 표준 세 자리 축약어를 사용한다ㅡ예를 들어, 미국 달러에 USD. 완전한 통화체계는 실제 Currency 객체를 필요로 하는데, 서로 다른 통화는 계산적으로 서로 다르게 행위하지만 현재 우리의 관심사는 두 개의 통화가 동일한지 아닌지에 그치기 때문이다. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Money는 어떻게 생성할까? 여기엔 Constructor Method(생성자 메서드)가 필요하다. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
Money class&amp;gt;&amp;gt;amount: aNumber currency: aSymbol&lt;br /&gt;
    ^self new&lt;br /&gt;
        setAmount: aNumber&lt;br /&gt;
        currency: aSymbol&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
메서드는 Type Suggesting Parameter Names(타입을 제안하는 파라미터명)으로 그 파라미터들의 타입에 대한 정보를 전달한다. 메서드 body는 Indented Control Flow(들여쓴 제어 흐름)를 이용해 Constructor Parameter Method(생성자 파라미터 메서드)가 두 개의 argument를 취한다는 사실을 독자에게 분명하게 알린다. Constructor Method(생성자 메서드)는 Interesting Return Value(흥미로운 리턴 값) 또한 항상 갖고 있다. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이제 인스턴스 변수를 Constructor Method에 제공되는 객체들에게 설정할 필요가 있다. Constructor Parameter Method를 작성한다:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
Money&amp;gt;&amp;gt;setAmount: aNumber currency: aSymbol&lt;br /&gt;
    amount := aNumber.&lt;br /&gt;
    currency := aSymbol&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
코드가 작동하는지 확인하고 싶다면 Debug Print Method(디버그 인쇄 메서드)가 필요할 것이다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
Money&amp;gt;&amp;gt;printOn: aStream&lt;br /&gt;
    aStream&lt;br /&gt;
        print: amount;&lt;br /&gt;
        space;&lt;br /&gt;
        nextPutAll: currency&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이 메서드는 Cascade를 이용해 3개의 메시지가 동일한 Stream으로 전송되고 있음을 보여준다는 사실에 주목하라. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이제 작업공간에 코드를 시도해볼 수 있다 (이탤릭체는 결과로 인쇄되는 내용이다):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
Money&lt;br /&gt;
    amount: 5&lt;br /&gt;
    currency: #USD 5 USD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:SmalltalkBestPracticePatterns]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>