<?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=VisualWorksIntroduction2%3APage2</id>
	<title>VisualWorksIntroduction2:Page2 - 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=VisualWorksIntroduction2%3APage2"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=VisualWorksIntroduction2:Page2&amp;action=history"/>
	<updated>2026-04-21T09:55:14Z</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=VisualWorksIntroduction2:Page2&amp;diff=2899&amp;oldid=prev</id>
		<title>Onionmixer: VisualWorksIntroduction2 Aspect 어댑터 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=VisualWorksIntroduction2:Page2&amp;diff=2899&amp;oldid=prev"/>
		<updated>2012-12-27T09:38:15Z</updated>

		<summary type="html">&lt;p&gt;VisualWorksIntroduction2 Aspect 어댑터 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{CincomTop|[[image:cincom_tutorial_vwtutorial2.gif|none|300px|cincom_tutorial_vwtutorial2]]}}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: none; width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align:center;font-weight:bold; font-style: normal;font-size:140%;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 입문서 : Aspect 어댑터&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;width:60px;float:left;&amp;quot; | {{HeadImageOpenbook}}&lt;br /&gt;
| {{HighlightBold|Aspect}} 어댑터가 무엇인지 설명하는 것은, 그것이 무엇을 하는지 이해하는 것 보다 매우 어렵습니다. 애스팩트 어댑터가 하는 일은 실제로 매우 간단합니다만, 튜토리얼에서 설명하는 것은 매우 어렵습니다.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;width:60px;float:left;&amp;quot; | {{HeadImageCertifacate}}&lt;br /&gt;
| {{CincomSmalltalkGreenBigFont|이 입문서는 Aspect 어댑터가 지닌 매우 복잡한 개념을 간단히 설명하는 것을 목적으로 하고 있습니다. 이것은 Smalltalk 가운데서도 매우 강력한 구조입니다. 그리고 VisualWorks의 GUI 어플리케이션 개발의 기초부분을 이루고 있습니다.}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;width:60px;float:left;&amp;quot; | {{HeadImageQuestion}}&lt;br /&gt;
| &amp;lt;span style=&amp;quot;font-weight:bold;font-style:normal;color:blue;font-size:120%;&amp;quot;&amp;gt;Aspect Adaptor는 무엇인가요?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
백문이 불여일견입니다. 시작합시다.&lt;br /&gt;
&lt;br /&gt;
[[image:cincom_introduction2_aspectadaptor.png|none|624px|thumb|그림 B-1. Aspect 어댑터의 시각적 표현]]&lt;br /&gt;
&lt;br /&gt;
캔버스가 작성되었습니다. 캔버스상의 하단에 있는 두 개의 위젯은 입력필드입니다. 하얀 입력필드의 aspect에는 {{HighlightBold|#messageInput}}을 지정했습니다. 노란 입력필드의 aspect에는 {{HighlightBold|#messageInput}} 을 지정했습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
그림 맨 우측에 보이는 것은 {{HighlightBold|AA}} 클래스의 인스턴스입니다. {{HighlightBold|anAA}} 오브젝트는 두 개의 인스턴스 변수, {{HighlightBold|#m1}}과 {{HighlightBold|#m2}}를 보유하고 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
캔버스 입력필드에는 {{HighlightBold|anAA}} 인스턴스 변수의 값을 표시하고 싶습니다. 더 좋은 것은, 캔버스 입력필드에, &amp;quot;만일 {{HighlightBold|anAA}}의 인스턴스 변수 값이 변경되었다면 항시&amp;quot; 그 값을 표시하는 것입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다시 한 번 이곳을 읽어주십시오. 기본적인 {{HighlightBold|Aspect}} 어댑터의 성질이 기술되어 있습니다. {{HighlightBold|Aspect}} 어댑터는 그 값을 지니지 않는 벨류 모델입니다. 위 예를 사용해 말하자면, {{HighlightBold|#messageInout}}과 {{HighlightBold|#messageOutput}}의 값은 {{HighlightBold|anAA}} 오브젝트의 {{HighlightBold|#m1}}과 {{HighlightBold|#m2}}에서 값을 취득합니다.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;width:60px;float:left;&amp;quot; | {{HeadImageMerge}}&lt;br /&gt;
| &amp;lt;span style=&amp;quot;font-weight:bold;font-style:normal;color:blue;font-size:120%;&amp;quot;&amp;gt;Aspect 어댑터는 어떻게 작동하나요?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aspect 어댑터의 동작에는 두 가지 처리가 있습니다.&lt;br /&gt;
# &amp;quot;타겟&amp;quot;값(예를들어, {{HighlightBold|#messageInput}}과 {{HighlightBold|#messageInput}})은 Aspect 어댑터 값으로 &amp;quot;선언&amp;quot;할 필요가 있습니다.&lt;br /&gt;
# &amp;quot;소스&amp;quot;값(예를들어, {{HighlightBold|#m1}}과 {{HighlightBold|#m2}})는, 변경되었을 때 항시 변경된 값을 시스템 전체에 통지할 필요가 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이곳은 그러한 작업을 실행하기 위한 방법입니다.&lt;br /&gt;
&lt;br /&gt;
1. &amp;quot;소스&amp;quot;값에 대한 &amp;quot;세터(setter)&amp;quot;&amp;quot; 메서드는 아래와 같이 할 필요가 있습니다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
m1: anM1 &lt;br /&gt;
m1 := anM1. &lt;br /&gt;
self changed: #m1.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
중요한 부분은 &amp;quot;시스템 전체의 브로드 캐스트&amp;quot;를 실행하는 맨 마지막 행입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. &amp;quot;타겟&amp;quot;값에 대해서는 아래와 같이 초기화 되어야만 합니다. 이 예시에서는 anAA는 이미 인스턴스라고 가정하고 있습니다. (예: {{HighlightBold|anAA := AA new}})&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
messageInput := (AspectAdaptor subject: anAA sendsUpdates: true) forAspect: #m1.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
위 문에서 subject: 메서드에 그 값을 도출할 &amp;quot;소스&amp;quot; 오브젝트를 지정해서 forAspect: 메서드에 그 값을 도출할 변수를 지정하고 있습니다.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;width:60px;float:left;&amp;quot; | {{HeadImageCertifacate}}&lt;br /&gt;
| &amp;lt;font style=&amp;quot;text-align:center;font-weight:bold; font-style: normal;font-size:110%;&amp;quot;&amp;gt;정리&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{HighlightBold|Aspect}} 어댑터는 하나의 연결부로 생각해 주십시오. {{HighlightBold|Aspect}} 어댑터는 포인터로 생각해 주십시오. {{HighlightBold|Aspect}} 어댑터는 참조로 생각해 주십시오. {{HighlightBold|Aspect}} 어댑터는 메시지로 생각해 주십시오. 혹시 이러한 생각들을 하는중에 {{HighlightBold|Aspect}} 어댑터의 성질에 대해 좀 더 깊게 생각할 계기가 될지도 모릅니다. 그 값을 어디에서 얻을 것인가, 그 뿐입니다.&lt;br /&gt;
|- style=&amp;quot;text-align:center;font-weight:bold; font-style: normal;font-size:120%;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;hr style=&amp;quot;color:black;background-color:black;height:4px;&amp;quot;&amp;gt; | 이전으로 돌아가기 |&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>