📄 工厂方法样式.mht
字号:
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>。</span><span lang=3DEN-US style=3D'mso-fareast-l=
anguage:
ZH-TW'><o:p></o:p></span></p>
<p class=3DMsoNormal style=3D'margin-left:24.0pt;text-indent:-24.0pt;mso-li=
st:l0 level1 lfo2;
tab-stops:list 24.0pt'><![if !supportLists]><span lang=3DEN-US style=3D'mso=
-fareast-font-family:
"Times New Roman";mso-fareast-language:ZH-TW'><span style=3D'mso-list:Ignor=
e'>1.<span
style=3D'font:7.0pt "Times New Roman"'> =
</span></span></span><![endif]><b><span style=3D'font-family:SimSun;mso-asc=
ii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>提供=
子类别的勾结</span></b><b><span
lang=3DEN-US style=3D'mso-fareast-font-family:SimSun'>(hooks)</span></b><sp=
an
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>:在类别内使用=
工厂方法来构建对象=
6159;比直接构建对象来௚=
0;有弹性,工厂方法样&=
#24335;给子类别一个勾结</sp=
an><b><span
lang=3DEN-US style=3D'mso-fareast-font-family:SimSun'>(hooks)</span></b><sp=
an
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>以提供对象一个=
扩充版本。在本章上=
6848;</span><span
lang=3DEN-US style=3D'mso-fareast-font-family:SimSun'>Document</span><span
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>例子中;</span><span lang=3DEN-US
style=3D'mso-fareast-font-family:SimSun'>Document</span><span style=3D'font=
-family:
SimSun;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times=
New Roman"'>类别可以定义一ߑ=
0;工厂方法叫</span><span
lang=3DEN-US style=3D'mso-fareast-font-family:SimSun'>CreateFileDialog</spa=
n><span
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>它构建一个预设=
的<b>档案开启对话框</b>=
545;象以开启一个现存的=
;文件。而文件</span><span
lang=3DEN-US style=3D'mso-fareast-font-family:SimSun'>(Product)</span><span
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>子类别继承这个=
工厂方法可以定义一=
0010;应用程序关连档案ल=
5;话框。在这个例子中&=
#24037;厂方法并非抽象但=
159;提供一个预设的实作=
;。</span><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p></o:p></span></p>
<p class=3DMsoNormal style=3D'margin-left:24.0pt;text-indent:-24.0pt;mso-li=
st:l0 level1 lfo2;
tab-stops:list 24.0pt'><![if !supportLists]><span lang=3DEN-US style=3D'mso=
-fareast-font-family:
"Times New Roman";mso-fareast-language:ZH-TW'><span style=3D'mso-list:Ignor=
e'>2.<span
style=3D'font:7.0pt "Times New Roman"'> =
</span></span></span><![endif]><b><span style=3D'font-family:SimSun;mso-asc=
ii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>连接=
平行的类别层级架构</s=
pan></b><b><span
lang=3DEN-US style=3D'mso-fareast-font-family:SimSun'>(parallel class hiera=
rchies)</span></b><b><span
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>:</span></b><span style=3D'font-family:SimSun;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Ro=
man"'>在这个例子中到目Ò=
69;为止;工厂方法只被=
</span><span
lang=3DEN-US style=3D'mso-fareast-font-family:SimSun'>Creator</span><span
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>呼叫;但并不只=
限于此;使用端可以=
5214;到更有用的使用途঍=
2;;尤其是以下平行类&=
#21035;层级架构的例子。</sp=
an><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p></o:p></span></p>
<p class=3DMsoNormal style=3D'margin-left:27.0pt;mso-para-margin-left:2.25g=
d'><span
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>平行类别层级架=
构是当一个类别委托=
0182;的部分责任给另一ߑ=
0;类别时的结果。处理&=
#22270;形时我们可以操作=
270;形如以鼠标平移、旋=
;转等,这些处理动作&#=
19968;般是不容易设计的z=
90;这些动作需要实时纪=
录或更新对象的状态=
5307;而这些状态记录只੍=
7;在操作这些动作时才&=
#23384;在因此不需要记录=
312;图形对象上,更甚者=
;不同的对象在操作时&#=
34892;为方式也不一样。Ë=
63;如拉长一个线段只是=
拉长线的一端;而拉=
8271;文字对象时可能改ࡢ=
4;文字线条间的间距。&=
#30001;于上述的限制;使=
992;个别的操作</span><span
lang=3DEN-US style=3D'mso-fareast-font-family:SimSun'>(manipulator)</span><=
span
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>对象是比较好的=
;这些个别操作对象=
3454;作这些互动行为及০=
5;需追踪所有操作的必&=
#35201;状态,不同的图形=
351;用不同的操作子类别=
;来控制个别的行为。&#=
36825;个操作类别层级架ĉ=
00;如图示。</span><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p></o:p></span></p>
<p class=3DMsoNormal style=3D'margin-left:27.0pt;mso-para-margin-left:2.25g=
d'><!--[if gte vml 1]><v:shape
id=3D"_x0000_s1028" type=3D"#_x0000_t75" style=3D'position:absolute;left:0;
text-align:left;margin-left:0;margin-top:9pt;width:414pt;height:174.25pt;
z-index:2;mso-position-horizontal:center' stroked=3D"t" strokeweight=3D"1.=
25pt">
<v:imagedata src=3D"file7231.files/image008.emz" o:title=3D""/>
</v:shape><![endif]--><![if !vml]><span style=3D'mso-ignore:vglayout'>
<table cellpadding=3D0 cellspacing=3D0 align=3Dleft>
<tr>
<td width=3D0 height=3D10></td>
</tr>
<tr>
<td></td>
<td><img width=3D556 height=3D237 src=3D"file7231.files/image009.gif" v:s=
hapes=3D"_x0000_s1028"></td>
</tr>
</table>
</span><![endif]><span lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o=
:p> </o:p></span></p>
<p class=3DMsoNormal style=3D'margin-left:27.0pt;mso-para-margin-left:2.25g=
d'><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p> </o:p></span><=
/p>
<p class=3DMsoNormal style=3D'margin-left:27.0pt;mso-para-margin-left:2.25g=
d'><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p> </o:p></span><=
/p>
<p class=3DMsoNormal style=3D'margin-left:27.0pt;mso-para-margin-left:2.25g=
d'><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p> </o:p></span><=
/p>
<p class=3DMsoNormal style=3D'margin-left:27.0pt;mso-para-margin-left:2.25g=
d'><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p> </o:p></span><=
/p>
<p class=3DMsoNormal style=3D'margin-left:27.0pt;mso-para-margin-left:2.25g=
d'><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p> </o:p></span><=
/p>
<p class=3DMsoNormal style=3D'margin-left:27.0pt;mso-para-margin-left:2.25g=
d'><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p> </o:p></span><=
/p>
<p class=3DMsoNormal style=3D'margin-left:27.0pt;mso-para-margin-left:2.25g=
d'><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p> </o:p></span><=
/p>
<p class=3DMsoNormal style=3D'margin-left:27.0pt;mso-para-margin-left:2.25g=
d'><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p> </o:p></span><=
/p>
<p class=3DMsoNormal style=3D'margin-left:27.0pt;mso-para-margin-left:2.25g=
d'><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p> </o:p></span><=
/p>
<p class=3DMsoNormal style=3D'margin-left:27.0pt;mso-para-margin-left:2.25g=
d'><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p> </o:p></span><=
/p>
<br style=3D'mso-ignore:vglayout' clear=3DALL>
<p class=3DMsoNormal style=3D'margin-left:27.0pt;mso-para-margin-left:2.25g=
d'><span
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>这个图形</span><span lang=3DEN-US
style=3D'mso-fareast-font-family:SimSun'>(Figure)</span><span style=3D'font=
-family:
SimSun;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times=
New Roman"'>类别提供一个</span><span
lang=3DEN-US style=3D'mso-fareast-font-family:SimSun'>CreateManipulator</sp=
an><span
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>工厂方法让使用=
端构建一个图形相对=
0340;操作</span><span
lang=3DEN-US style=3D'mso-fareast-font-family:SimSun'>(Manipulator)</span><=
span
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>。图形的子类别=
改写这个工厂方法以=
0256;回相对操作子类别௚=
0;实体对象。另一种替&=
#20195;方法是图形类别可=
197;实作</span><span
lang=3DEN-US style=3D'mso-fareast-font-family:SimSun'>CreateManipulator</sp=
an><span
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>传回预设的操作=
实体对象而图形子类=
1035;只是继承预设的,ࣳ=
4;此图形类别无须相对&=
#24212;的操作子类别:因=
026;层级架构只是部分的=
;平行。</span><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p></o:p></span></p>
<p class=3DMsoNormal style=3D'margin-left:27.0pt;mso-para-margin-left:2.25g=
d'><span
style=3D'font-family:SimSun;mso-ascii-font-family:"Times New Roman";mso-han=
si-font-family:
"Times New Roman"'>最后请注意工厂=
方法如何定义这两个=
1867;别层级架构的连接ᦂ=
7;<span
style=3D'color:navy'>《译注:经由ࢳ=
0;形子类别的工厂方法&=
#26500;建相对应的操作对#=
937;;而这工厂方法是操=
;作类别的构建函数》</=
span>因为他将个别类别৓=
2;属的知识依据分属集&=
#20013;在一起</span><span
lang=3DEN-US style=3D'mso-fareast-font-family:SimSun'>(It localize knowledg=
e of which
classes belong together)</span><span style=3D'font-family:SimSun;mso-ascii-=
font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>。</span><=
span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p></o:p></span></p>
<h3><span style=3D'font-family:SimSun;mso-ascii-font-family:Arial;mso-hansi=
-font-family:
Arial'>实作</span><span lang=3DEN-US>(Implementation)</span><sp=
an
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p></o:p></span></h3>
<p class=3DMsoNormal style=3D'margin-left:24.0pt;text-indent:-24.0pt;mso-li=
st:l3 level1 lfo4;
tab-stops:list 24.0pt'><![if !supportLists]><b><span lang=3DEN-US
style=3D'mso-fareast-font-family:"Times New Roman";mso-fareast-language:ZH-=
TW'><span
style=3D'mso-list:Ignore'>1.<span style=3D'font:7.0pt "Times New Roman"'>&n=
bsp;
</span></span></span></b><![endif]><b><span style=3D'font-family:SimSun;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Ro=
man"'>两个主要的实作变Ô=
70;:</span></b><b><span
lang=3DEN-US style=3D'mso-fareast-language:ZH-TW'><o:p></o:p></span></b></p>
<p class=3DMsoNormal style=3D'margin-left:48.0pt;text-indent:-48.0pt;mso-te=
xt-indent-alt:
-24.0pt;mso-list:l3 level2 lfo4;tab-stops:list 48.0pt'><![if !supportLists]=
><span
lang=3DEN-US style=3D'mso-fareast-font-family:"Times New Roman";mso-fareast=
-language:
ZH-TW'><span style=3D'mso-list:Ignore'><span style=3D'font:7.0pt "Times New=
Roman"'> =
</span>i.<span style=3D'font:7.0pt "Times New Roman"'> &nb=
sp;
</span></span></span><![endif]><span lang=3DEN-US style=3D'mso-fareast-font=
-family:
SimSun'>Creator</span><span style=3D'font-family:SimSun;mso-ascii-font-fami=
ly:
"Times New Roman";mso-hans
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -