?? Θ妓Α.mht
字號:
margin-left:51.0pt;
text-indent:-24.0pt;}
@list l26
{mso-list-id:1796943776;
mso-list-type:hybrid;
mso-list-template-ids:-1196291262 67698703 67698713 67698715 67698703 6769=
8713 67698715 67698703 67698713 67698715;}
@list l26:level1
{mso-level-tab-stop:24.0pt;
mso-level-number-position:left;
margin-left:24.0pt;
text-indent:-24.0pt;}
@list l27
{mso-list-id:2144344132;
mso-list-type:hybrid;
mso-list-template-ids:1315230158 67698703 67698713 67698715 67698703 67698=
713 67698715 67698703 67698713 67698715;}
@list l27:level1
{mso-level-tab-stop:51.0pt;
mso-level-number-position:left;
margin-left:51.0pt;
text-indent:-24.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:\8868\683C\5167\6587;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"2050"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1"/>
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3DZH-TW link=3Dblue vlink=3Dpurple style=3D'tab-interval:24.0pt;=
text-justify-trim:
punctuation'>
<div class=3DSection1 style=3D'layout-grid:18.0pt'>
<h1><span style=3D'font-family:PMingLiU;mso-ascii-font-family:Arial;mso-han=
si-font-family:
Arial'>合成樣式</span><span lang=3DEN-US>(Composite=
)</span></h1>
<p class=3DMsoNormal><span lang=3DEN-US><!--[if gte vml 1]><v:shapetype id=
=3D"_x0000_t75"
coordsize=3D"21600,21600" o:spt=3D"75" o:preferrelative=3D"t" path=3D"m@4@=
5l@4@11@9@11@9@5xe"
filled=3D"f" stroked=3D"f">
<v:stroke joinstyle=3D"miter"/>
<v:formulas>
<v:f eqn=3D"if lineDrawn pixelLineWidth 0"/>
<v:f eqn=3D"sum @0 1 0"/>
<v:f eqn=3D"sum 0 0 @1"/>
<v:f eqn=3D"prod @2 1 2"/>
<v:f eqn=3D"prod @3 21600 pixelWidth"/>
<v:f eqn=3D"prod @3 21600 pixelHeight"/>
<v:f eqn=3D"sum @0 0 1"/>
<v:f eqn=3D"prod @6 1 2"/>
<v:f eqn=3D"prod @7 21600 pixelWidth"/>
<v:f eqn=3D"sum @8 21600 0"/>
<v:f eqn=3D"prod @7 21600 pixelHeight"/>
<v:f eqn=3D"sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok=3D"f" gradientshapeok=3D"t" o:connecttype=3D"rect"/>
<o:lock v:ext=3D"edit" aspectratio=3D"t"/>
</v:shapetype><v:shape id=3D"_x0000_i1025" type=3D"#_x0000_t75" style=3D'wi=
dth:373.8pt;
height:16.8pt'>
<v:imagedata src=3D"file2607.files/image001.gif" o:title=3D"BD21303_"/>
</v:shape><![endif]--><![if !vml]><img width=3D498 height=3D22
src=3D"file2607.files/image001.gif" v:shapes=3D"_x0000_i1025"><![endif]></s=
pan></p>
<h3><span style=3D'font-family:PMingLiU;mso-ascii-font-family:Arial;mso-han=
si-font-family:
Arial'>目的</span><span lang=3DEN-US>(Intent)</span></h3>
<p class=3DMsoNormal style=3D'text-indent:24.0pt;mso-char-indent-count:2.0'=
><span
style=3D'font-family:PMingLiU;mso-ascii-font-family:"Times New Roman";mso-h=
ansi-font-family:
"Times New Roman"'>合成多個物件成=
樹狀結構以表現個別=
3287;整體</span><span
lang=3DEN-US>(part-whole)</span><span style=3D'font-family:PMingLiU;mso-asc=
ii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>的層=
級架構。合成樣式讓=
0351;用端以一致的方式൮=
9;理個別及合成物件。<=
/span></p>
<h3><span style=3D'font-family:PMingLiU;mso-ascii-font-family:Arial;mso-han=
si-font-family:
Arial'>動機</span><span lang=3DEN-US>(Motivation)</span></h3>
<p class=3DMsoNormal style=3D'text-indent:27.0pt;mso-char-indent-count:2.25=
'><span
style=3D'font-family:PMingLiU;mso-ascii-font-family:"Times New Roman";mso-h=
ansi-font-family:
"Times New Roman"'>圖形處理系統如=
繪圖編輯</span><span
lang=3DEN-US>(drawing Editors)</span><span style=3D'font-family:PMingLiU;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Ro=
man"'>及圖表抓取</span><span
lang=3DEN-US>(schematic capture)</span><span style=3D'font-family:PMingLiU;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Ro=
man"'>系統讓使用端從簡Û=
34;的圖形組合建立合成=
圖形甚至再組合合成=
2294;形成更複雜的圖形Ӎ=
0;簡單的實作可定義原&=
#22987;</span><span
lang=3DEN-US>(primitive)</span><span style=3D'font-family:PMingLiU;mso-asci=
i-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>的類=
別如文字及線段加上=
0854;他原始類別的組合༼=
6;別。</span></p>
<p class=3DMsoNormal style=3D'text-indent:27.0pt;mso-char-indent-count:2.25=
'><span
style=3D'font-family:PMingLiU;mso-ascii-font-family:"Times New Roman";mso-h=
ansi-font-family:
"Times New Roman"'>此種方式的問題=
是:在寫作程式時必=
8920;以不同方式處理這ష=
8;原始物件及組合物件&=
#65292;因為必須區分這些=
289;件使得系統更複雜。=
;合成樣式將描述如何&#=
20351;用遞回合成</span><span
lang=3DEN-US>(recursive composition)</span><span style=3D'font-family:PMing=
LiU;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Ro=
man"'>讓使用端無須做這É=
23;區分。</span></p>
<p class=3DMsoNormal style=3D'text-indent:27.0pt;mso-char-indent-count:2.25=
'><span
lang=3DEN-US><!--[if gte vml 1]><v:shape id=3D"_x0000_i1027" type=3D"#_x000=
0_t75"
style=3D'width:414pt;height:188.4pt;mso-position-horizontal:center'
o:bordertopcolor=3D"black" o:borderleftcolor=3D"black" o:borderbottomcolor=
=3D"black"
o:borderrightcolor=3D"black" o:allowoverlap=3D"f">
<v:imagedata src=3D"file2607.files/image002.emz" o:title=3D""/>
<w:bordertop type=3D"single" width=3D"10"/>
<w:borderleft type=3D"single" width=3D"10"/>
<w:borderbottom type=3D"single" width=3D"10"/>
<w:borderright type=3D"single" width=3D"10"/>
</v:shape><![endif]--><![if !vml]><img width=3D555 height=3D254
src=3D"file2607.files/image011.gif" v:shapes=3D"_x0000_i1027"><![endif]></s=
pan></p>
<p class=3DMsoNormal style=3D'text-indent:27.0pt;mso-char-indent-count:2.25=
'><span
style=3D'font-family:PMingLiU;mso-ascii-font-family:"Times New Roman";mso-h=
ansi-font-family:
"Times New Roman"'>合成樣式的關鍵=
是一個表示原始及承=
6617;</span><span
lang=3DEN-US>(containers)</span><span style=3D'font-family:PMingLiU;mso-asc=
ii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>的抽=
象類別。以圖形系統=
0358;說這個類別是</span><span
class=3DSpellE><span lang=3DEN-US>TGraphic</span></span><span style=3D'font=
-family:
PMingLiU;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Tim=
es New Roman"'>,</span><span
class=3DSpellE><span lang=3DEN-US>TGraphic</span></span><span style=3D'font=
-family:
PMingLiU;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Tim=
es New Roman"'>類別宣告的操作=
914;</span><span
lang=3DEN-US>Draw()</span><span style=3D'font-family:PMingLiU;mso-ascii-fon=
t-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>是針=
對圖形物件,除此之=
2806;有一些是合成物件৓=
2;共用的如存取及管理&=
#20854;子代物件的操作。=
978;圖中的次類別如</span><span
class=3DSpellE><span lang=3DEN-US>TLine</span></span><span style=3D'font-fa=
mily:PMingLiU;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Ro=
man"'>、</span><span
class=3DSpellE><span lang=3DEN-US>TRectangle</span></span><span style=3D'fo=
nt-family:
PMingLiU;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Tim=
es New Roman"'>及</span><span
class=3DSpellE><span lang=3DEN-US>TText</span></span><span style=3D'font-fa=
mily:PMingLiU;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Ro=
man"'>定義原始圖形物件ʌ=
92;這些次類別實作</span><span
lang=3DEN-US>Draw()</span><span style=3D'font-family:PMingLiU;mso-ascii-fon=
t-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>以繪=
製線段、方形及文字=
5292;同時這些圖形物件૛=
4;有子類別所以這些次&=
#39006;別無須實作與子類=
029;相關的操作。</span></p>
<p class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><span lang=
=3DEN-US><!--[if gte vml 1]><v:shape
id=3D"_x0000_i1028" type=3D"#_x0000_t75" style=3D'width:322.2pt;height:169=
.2pt;
mso-position-horizontal:center' o:ole=3D"" o:bordertopcolor=3D"this"
o:borderleftcolor=3D"this" o:borderbottomcolor=3D"this" o:borderrightcolor=
=3D"this"
o:allowoverlap=3D"f">
<v:imagedata src=3D"file2607.files/image004.wmz" o:title=3D""/>
<w:bordertop type=3D"single" width=3D"4" shadow=3D"t"/>
<w:borderleft type=3D"single" width=3D"4" shadow=3D"t"/>
<w:borderbottom type=3D"single" width=3D"4" shadow=3D"t"/>
<w:borderright type=3D"single" width=3D"4" shadow=3D"t"/>
</v:shape><![endif]--><![if !vml]><img width=3D433 height=3D229
src=3D"file2607.files/image012.gif" v:shapes=3D"_x0000_i1028"><![endif]><!-=
-[if gte mso 9]><xml>
<o:OLEObject Type=3D"Embed" ProgID=3D"Visio.Drawing.6" ShapeID=3D"_x0000_i=
1028"
DrawAspect=3D"Content" ObjectID=3D"_1100330947">
</o:OLEObject>
</xml><![endif]--></span></p>
<p class=3DMsoNormal style=3D'text-indent:27.0pt;mso-char-indent-count:2.25=
'><span
class=3DSpellE><span lang=3DEN-US>TPicture</span></span><span style=3D'font=
-family:
PMingLiU;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Tim=
es New Roman"'>次類別定義一個=
294;形物件的聚合</span><span
lang=3DEN-US>(aggregate)</span><span style=3D'font-family:PMingLiU;mso-asci=
i-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>,</span><=
span
class=3DSpellE><span lang=3DEN-US>TPicture</span></span><span style=3D'font=
-family:
PMingLiU;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Tim=
es New Roman"'>實作</span><span
lang=3DEN-US>Draw()</span><span style=3D'font-family:PMingLiU;mso-ascii-fon=
t-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>呼叫=
其子類別的</span><span
lang=3DEN-US>Draw()</span><span style=3D'font-family:PMingLiU;mso-ascii-fon=
t-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>並實=
作與子類別相關</span><span
lang=3DEN-US>(child-related)</span><span style=3D'font-family:PMingLiU;mso-=
ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>的操=
作。因為</span><span
class=3DSpellE><span lang=3DEN-US>TPicture</span></span><span style=3D'font=
-family:
PMingLiU;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Tim=
es New Roman"'>的介面與</span><span
class=3DSpellE><span lang=3DEN-US>TGraphic</span></span><span style=3D'font=
-family:
PMingLiU;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Tim=
es New Roman"'>的介面一致,所=
197;</span><span
class=3DSpellE><span lang=3DEN-US>TPicture</span></span><span style=3D'font=
-family:
PMingLiU;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Tim=
es New Roman"'>可以再遞迴組合=
854;他</span><span
class=3DSpellE><span lang=3DEN-US>TPicture</span></span><span style=3D'font=
-family:
PMingLiU;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Tim=
es New Roman"'>。如上圖。</span></p>
<h3><span style=3D'font-family:PMingLiU;mso-ascii-font-family:Arial;mso-han=
si-font-family:
Arial'>適用性</span><span lang=3DEN-US>(Applicability)</s=
pan></h3>
<p class=3DMsoNormal><span style=3D'font-family:PMingLiU;mso-ascii-font-fam=
ily:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>使用=
合成樣式的時機如下=
5306;</span></p>
<p class=3DMsoNormal style=3D'margin-left:24.0pt;text-indent:-24.0pt;mso-li=
st:l19 level1 lfo16;
tab-stops:list 24.0pt'><![if !supportLists]><span lang=3DEN-US style=3D'fon=
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -