锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品无码不卡在线播放,亚洲www在线观看,四虎精品亚洲一区二区三区http://m.tkk7.com/Jluoguang/category/36635.html濡傛灉璇磋蔣浠跺紑鍙戞槸涓鏉″竷婊¤崋媯樼殑鍧庡澐涔嬭礬錛岄偅涔堟垜浼氭瘡澶╁湪榪欓亾璺袱鏃佷功涓娾滅伀鐒拌垶鑰咃紝鍒版涓娓革紒鈥濄?/description>zh-cnSun, 14 Mar 2010 20:11:26 GMTSun, 14 Mar 2010 20:11:26 GMT60Builder妯″紡鐨勭悊瑙?/title><link>http://m.tkk7.com/Jluoguang/archive/2010/03/15/315359.html</link><dc:creator>姘歌繙鐨勭伀鐒拌垶鑰?/dc:creator><author>姘歌繙鐨勭伀鐒拌垶鑰?/author><pubDate>Sun, 14 Mar 2010 18:00:00 GMT</pubDate><guid>http://m.tkk7.com/Jluoguang/archive/2010/03/15/315359.html</guid><wfw:comment>http://m.tkk7.com/Jluoguang/comments/315359.html</wfw:comment><comments>http://m.tkk7.com/Jluoguang/archive/2010/03/15/315359.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/Jluoguang/comments/commentRss/315359.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/Jluoguang/services/trackbacks/315359.html</trackback:ping><description><![CDATA[<span lang="EN-US">      Builder妯″紡鏄竴姝ヤ竴姝ュ垱寤轟竴涓鏉傜殑瀵硅薄錛屽畠鍏佽鐢ㄦ埛鍙互鍙氳繃鎸囧畾澶嶆潅瀵硅薄鐨勭被鍨嬪拰鍐呭灝卞彲浠ユ瀯寤哄畠浠傜敤鎴蜂笉闇瑕佺煡閬撳唴閮ㄧ殑鍏蜂綋鏋勫緩緇嗚妭銆傚洜涓轟竴涓鏉傜殑瀵硅薄錛?span lang="EN-US">涓嶄絾鏈夊緢澶氬ぇ閲忕粍鎴愰儴鍒嗭紝濡傛苯杞︼紝鏈夊緢澶氶儴浠?杞﹁疆銆佹柟鍚戠洏銆佸彂鍔ㄦ満榪樻湁鍚勭灝忛浂浠剁瓑絳夛紝閮ㄤ歡寰堝錛屼絾榪滀笉姝㈣繖浜涳紝濡備綍灝嗚繖浜涢儴浠惰閰嶆垚涓杈嗘苯杞﹀憿錛熻繖涓閰嶈繃紼嬩篃寰堝鏉?闇瑕佸緢濂界殑緇勮鎶鏈?錛孊uilder妯″紡灝辨槸涓轟簡灝嗛儴浠跺拰緇勮榪囩▼鍒嗗紑銆傛槸涓轟簡灝嗘瀯寤哄鏉傚璞$殑<strong>榪囩▼</strong>鍜屽畠鐨?strong>閮ㄤ歡</strong>瑙h︺傛敞鎰?錛氭槸瑙h?strong>榪囩▼</strong>鍜?strong>閮ㄤ歡<em>銆?br /> </em></strong>        灝辨嬁閫犳埧瀛愭潵璇達紝姣斿鏌愪竴澶╀綘鐨勯瀵兼壘鍒頒簡浣狅紝“灝廇鍟婏紝宸ヤ綔涓嶉敊錛屼綘鐨勮兘鍔涘拰鎬佸害閮芥槸鎴戞瘮杈冩璧忕殑錛屽ソ濂藉共鍓嶉斾竴鐗囧ぇ濂?#8221;錛岀劧鍚庝綘鎽告懜鑴戣錛屽懙鍛靛偦絎戯紝“鎴戞渶榪戞兂鐩栦竴鏍嬪埆澧咃紝浣犲府鎴戞悶瀹氬惂錛屾湁浣犲湪錛屾垜鏀懼績”錛岀劧鍚庝綘灞侀灞侀璺戝幓鎵句簡N涓悇涓鍩熺殑甯堝倕錛岀爩澧欑殑銆佸畨瑁呯數綰跨殑銆佽鍦版澘鐨勩佷慨椹《鐨勪貢78閬竴鍫嗕漢錛屽ソ浜嗭紝鐜板湪鍙互鍔ㄥ伐浜嗗惂銆備絾浣犳墜涓嬬殑閭d簺甯堝倕鍗存槸浣犵灖鎴戯紝鎴戠灖浣犵殑錛?#8220;鑰佹澘錛屾庝箞搴旇鍋氭垚浠涔堟牱鐨勫埆澧咃紝鍏堜粠鍝悶璧鳳紵”榪欐椂渚紝浣犱篃鍌諱簡鍚э紝蹇界暐浜嗘渶閲嶈鐨勪竴鐜?璁捐錛屾病鍔炴硶閿呰嚜宸變篃涓嶄細錛屽幓鎵句釜璁捐甯堣璁″吋鎸囨尌鍚с傝璁″笀鍒楀嚭浜哊涓柟妗堬紝騫墮夋嫨浜嗗叾涓箣涓灝卞姩宸ヤ簡銆備竴涓湀鍚庯紝浣犵殑涓婂徃鎵句綘瑕佷簡鎴垮瓙浜や粯鍚庯紝榪欎釜榪囩▼涔熷氨瀹岀粨浜嗐俠uilder妯″紡灝辨槸榪欎箞涓繃紼嬶紝鎶婁綘鐨勮閰嶈繃紼嬶紙璁捐甯堟寚鎸ュ悇涓笀鍌呰閰嶆埧瀛愮殑欏哄簭榪囩▼錛夊拰榪欎釜builder錛堝甫棰嗗悇涓笓鑱屽笀鍌呮墍浣滅殑浜嬫儏錛変篃灝辨槸閮ㄤ歡鑱岃矗鍒嗙銆傚厜璇翠笉緇冿紝娌$敤錛岄偅鎺ヤ笅鏉ュ挶灝辮創涓嬩唬鐮佹洿鍔犲艦璞″寲涓嬶紝濡備笅錛?br />          UML綾誨浘錛?br /> <img height="299" alt="" src="http://m.tkk7.com/images/blogjava_net/jluoguang/00.jpg" width="562" border="0" /><br />         UML欏哄簭鍥劇矖鐣ュ涓嬶細<br />          <img alt="" src="file:///C:/DOCUME~1/luoguang/LOCALS~1/Temp/8I`A@I(12UB$LNZ5L5U8@8R.jpg" /> <br /> <br />            棣栧厛鍋囪涓涓鏉傚璞℃槸鐢卞涓儴浠剁粍鎴愮殑錛孊uilder妯″紡鏄妸澶嶆潅瀵硅薄鐨勫垱寤哄拰閮ㄤ歡鐨勫垱寤哄垎鍒紑鏉ワ紝鍒嗗埆鐢˙uilder綾誨拰Director綾繪潵琛ㄧず銆?br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_25_259_Open_Image" onclick="this.style.display='none'; Codehighlighter1_25_259_Open_Text.style.display='none'; Codehighlighter1_25_259_Closed_Image.style.display='inline'; Codehighlighter1_25_259_Closed_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_25_259_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_25_259_Closed_Text.style.display='none'; Codehighlighter1_25_259_Open_Image.style.display='inline'; Codehighlighter1_25_259_Open_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">interface</span><span style="color: #000000"> Builder </span><span id="Codehighlighter1_25_259_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://m.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_25_259_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #008000">//</span><span style="color: #008000"> 姣斿鐮屽</span><span style="color: #008000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> buildPartA();<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    <br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #008000">//</span><span style="color: #008000"> 姣斿瑁呯數綰?/span><span style="color: #008000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> buildPartB();<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    <br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #008000">//</span><span style="color: #008000"> 姣斿瑁呴┈妗?/span><span style="color: #008000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> buildPartC();<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    <br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #008000">//</span><span style="color: #008000">榪斿洖鏈鍚庣粍瑁呮垚鍝佺粨鏋?nbsp;(榪斿洖鏈鍚庤閰嶅ソ鐨勬苯杞?<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #008000">//</span><span style="color: #008000">鎴愬搧鐨勭粍瑁呰繃紼嬩笉鍦ㄨ繖閲岃繘琛岋紝鑰屾槸杞Щ鍒頒笅闈㈢殑Director綾諱腑榪涜銆?br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #008000">//</span><span style="color: #008000">浠庤屽疄鐜頒簡瑙h︺愯繃紼嬨戝拰銆愰儴浠躲?/span><span style="color: #008000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> Product getResult();<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div> <br /> <p>       鐢?span lang="EN-US">Director鏋勫緩鏈鍚庣殑澶嶆潅瀵硅薄錛岃屽湪涓婇潰Builder鎺ュ彛涓皝瑁呯殑鏄浣曞垱寤轟竴涓釜閮ㄤ歡(澶嶆潅瀵硅薄鏄敱榪欎簺閮ㄤ歡緇勬垚鐨?錛屼篃灝辨槸璇碊irector鐨勫唴瀹規槸濡備綍灝嗛儴浠舵渶鍚庣粍瑁呮垚鎴愬搧錛?br /> </p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000"><br /> <img id="Codehighlighter1_23_216_Open_Image" onclick="this.style.display='none'; Codehighlighter1_23_216_Open_Text.style.display='none'; Codehighlighter1_23_216_Closed_Image.style.display='inline'; Codehighlighter1_23_216_Closed_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_23_216_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_23_216_Closed_Text.style.display='none'; Codehighlighter1_23_216_Open_Image.style.display='inline'; Codehighlighter1_23_216_Open_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> Director </span><span id="Codehighlighter1_23_216_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://m.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_23_216_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #0000ff">private</span><span style="color: #000000"> Builder builder;<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    <br /> <img id="Codehighlighter1_55_95_Open_Image" onclick="this.style.display='none'; Codehighlighter1_55_95_Open_Text.style.display='none'; Codehighlighter1_55_95_Closed_Image.style.display='inline'; Codehighlighter1_55_95_Closed_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_55_95_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_55_95_Closed_Text.style.display='none'; Codehighlighter1_55_95_Open_Image.style.display='inline'; Codehighlighter1_55_95_Open_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_55_95_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/** */</span><span id="Codehighlighter1_55_95_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />     * 浜у搧鐨勭粍瑁呰繃紼嬶紝榪欓噷鍙互鏀瑰彉瑁呴厤欏哄簭錛屼粠鑰屽緱鍒頒笉鍚岀殑鏂規<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />     </span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /> <img id="Codehighlighter1_118_214_Open_Image" onclick="this.style.display='none'; Codehighlighter1_118_214_Open_Text.style.display='none'; Codehighlighter1_118_214_Closed_Image.style.display='inline'; Codehighlighter1_118_214_Closed_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_118_214_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_118_214_Closed_Text.style.display='none'; Codehighlighter1_118_214_Open_Image.style.display='inline'; Codehighlighter1_118_214_Open_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> build() </span><span id="Codehighlighter1_118_214_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://m.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_118_214_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        builder.buildPartA();</span><span style="color: #008000">//</span><span style="color: #008000"> 鍏堢爩澧?/span><span style="color: #008000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">        builder.buildPartB();</span><span style="color: #008000">//</span><span style="color: #008000"> 鍐嶈鐢電嚎</span><span style="color: #008000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">        builder.buildPartC();</span><span style="color: #008000">//</span><span style="color: #008000"> 鑰屽悗瑁呴┈妗?/span><span style="color: #008000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /></span><span style="color: #000000">    }</span></span><span style="color: #000000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span></div> </span></span></span><br />       <span lang="EN-US">Builder鐨勫叿浣撳疄鐜癈oncreteBuilder錛岄氳繃鍏蜂綋瀹屾垚鎺ュ彛Builder鏉ユ瀯寤烘垨瑁呴厤浜у搧鐨勯儴浠訛紝瀹氫箟騫舵槑紜畠鎵瑕佸垱寤虹殑鏄粈涔堝叿浣撲笢瑗匡紱鎻愪緵涓涓彲浠ラ噸鏂拌幏鍙栦駭鍝佺殑鎺ュ彛銆?br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_48_272_Open_Image" onclick="this.style.display='none'; Codehighlighter1_48_272_Open_Text.style.display='none'; Codehighlighter1_48_272_Closed_Image.style.display='inline'; Codehighlighter1_48_272_Closed_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_48_272_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_48_272_Closed_Text.style.display='none'; Codehighlighter1_48_272_Open_Image.style.display='inline'; Codehighlighter1_48_272_Open_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> ConcreteBuilder </span><span style="color: #0000ff">implements</span><span style="color: #000000"> Builder </span><span id="Codehighlighter1_48_272_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://m.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_48_272_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /> <img id="Codehighlighter1_77_95_Open_Image" onclick="this.style.display='none'; Codehighlighter1_77_95_Open_Text.style.display='none'; Codehighlighter1_77_95_Closed_Image.style.display='inline'; Codehighlighter1_77_95_Closed_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_77_95_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_77_95_Closed_Text.style.display='none'; Codehighlighter1_77_95_Open_Image.style.display='inline'; Codehighlighter1_77_95_Open_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> buildPartA() </span><span id="Codehighlighter1_77_95_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://m.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_77_95_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="color: #008000">//</span><span style="color: #008000"> 鍏蜂綋濡備綍鐮屽鐨勮繃紼?/span><span style="color: #008000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /></span><span style="color: #000000">    }</span></span><span style="color: #000000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /> <img id="Codehighlighter1_124_143_Open_Image" onclick="this.style.display='none'; Codehighlighter1_124_143_Open_Text.style.display='none'; Codehighlighter1_124_143_Closed_Image.style.display='inline'; Codehighlighter1_124_143_Closed_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_124_143_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_124_143_Closed_Text.style.display='none'; Codehighlighter1_124_143_Open_Image.style.display='inline'; Codehighlighter1_124_143_Open_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> buildPartB() </span><span id="Codehighlighter1_124_143_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://m.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_124_143_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="color: #008000">//</span><span style="color: #008000"> 鍏蜂綋濡備綍瑁呯數綰跨殑榪囩▼</span><span style="color: #008000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /></span><span style="color: #000000">    }</span></span><span style="color: #000000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /> <img id="Codehighlighter1_172_191_Open_Image" onclick="this.style.display='none'; Codehighlighter1_172_191_Open_Text.style.display='none'; Codehighlighter1_172_191_Closed_Image.style.display='inline'; Codehighlighter1_172_191_Closed_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_172_191_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_172_191_Closed_Text.style.display='none'; Codehighlighter1_172_191_Open_Image.style.display='inline'; Codehighlighter1_172_191_Open_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> buildPartC() </span><span id="Codehighlighter1_172_191_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://m.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_172_191_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="color: #008000">//</span><span style="color: #008000"> 鍏蜂綋濡備綍瑁呴┈妗剁殑榪囩▼</span><span style="color: #008000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /></span><span style="color: #000000">    }</span></span><span style="color: #000000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /> <img id="Codehighlighter1_222_269_Open_Image" onclick="this.style.display='none'; Codehighlighter1_222_269_Open_Text.style.display='none'; Codehighlighter1_222_269_Closed_Image.style.display='inline'; Codehighlighter1_222_269_Closed_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_222_269_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_222_269_Closed_Text.style.display='none'; Codehighlighter1_222_269_Open_Image.style.display='inline'; Codehighlighter1_222_269_Open_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> Product getResult() </span><span id="Codehighlighter1_222_269_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://m.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_222_269_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="color: #008000">//</span><span style="color: #008000"> 榪斿洖鏈鍚庣殑緇勮鐨勪駭鍝侊紙鎴垮瓙錛?/span><span style="color: #008000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> Product();<br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="color: #000000"><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /> <img alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div> <br />        澶嶆潅瀵硅薄錛?span lang="EN-US">浜у搧Product<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_25_27_Open_Image" onclick="this.style.display='none'; Codehighlighter1_25_27_Open_Text.style.display='none'; Codehighlighter1_25_27_Closed_Image.style.display='inline'; Codehighlighter1_25_27_Closed_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_25_27_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_25_27_Closed_Text.style.display='none'; Codehighlighter1_25_27_Open_Image.style.display='inline'; Codehighlighter1_25_27_Open_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">interface</span><span style="color: #000000"> Product </span><span id="Codehighlighter1_25_27_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://m.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_25_27_Open_Text"><span style="color: #000000">{ }</span></span><span style="color: #000000"> <br /> </span></div> </span></span><br />        澶嶆潅瀵硅薄鐨勯儴浠訛細閮ㄤ歡Part<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_22_24_Open_Image" onclick="this.style.display='none'; Codehighlighter1_22_24_Open_Text.style.display='none'; Codehighlighter1_22_24_Closed_Image.style.display='inline'; Codehighlighter1_22_24_Closed_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_22_24_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_22_24_Closed_Text.style.display='none'; Codehighlighter1_22_24_Open_Image.style.display='inline'; Codehighlighter1_22_24_Open_Text.style.display='inline';" alt="" src="http://m.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">interface</span><span style="color: #000000"> Part </span><span id="Codehighlighter1_22_24_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://m.tkk7.com/Images/dot.gif" /></span><span id="Codehighlighter1_22_24_Open_Text"><span style="color: #000000">{ }</span></span></div> <br />        鎺ヤ笅鍘誨氨鏄垜浠殑鑰佹澘鏉ユ壘鎴戜滑瑕佹埧瀛愪簡錛?br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">ConcreteBuilder builder </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> ConcreteBuilder();<br /> <img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align="top" alt="" />Director director </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> Director( builder ); <br /> <img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align="top" alt="" />director.build(); <br /> <img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align="top" alt="" />Product product </span><span style="color: #000000">=</span><span style="color: #000000"> builder.getResult(); <br /> <img src="http://m.tkk7.com/Images/OutliningIndicators/None.gif" align="top" alt="" /></span></div> <br />        鏁翠釜builder妯″紡灝辮繖鏍峰畬緇撲簡錛屽綋鐒舵湁浜轟細鏈夌枒闂?#8220;涓轟粈涔坓etResult涓嶆斁鍦―irector閲岋紵”鑷充簬榪欎釜闂鎴戞槸榪欎箞鎯崇殑錛屼綘鐨勮佹澘褰撶劧鏄壘浣犺鎴垮瓙浜嗭紝闅句笉鎴愯繕鎵捐璁″笀瑕侊紵鎴戜滑鏄痓uilder鍢涳紝閭d簺閮ㄤ歡錛圥art錛夊彲閮芥槸鎴戜滑綆$悊鐨勶紝鑰岃璁″笀鍙礋璐h璁$粍瑁咃紝榪欐牱榪囩▼鍜岄儴浠朵笉鏄亴璐e垎紱葷殑寰堟竻妤氬悧錛熷鏋滃摢涓澶╋紝鑰佹澘鍙堟兂閫犲彟澶栦竴鏍嬫牸寮忎笉涓鏍風殑鍒錛屾垜浠氨鐩存帴鎵捐璁″笀瑙e喅涓嬨傝嚦浜巄uilder妯″紡鍜宎bstract factory妯″紡鐨勫樊寮傦紝鎴戞槸榪欎箞鐞嗚В鐨勶紝builder妯″紡娉ㄩ噸浜庝竴涓繃紼嬶紝鑰宎bstract factory鍒欎晶閲嶄簬浜у搧鐨勭鐞嗐? <img src ="http://m.tkk7.com/Jluoguang/aggbug/315359.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/Jluoguang/" target="_blank">姘歌繙鐨勭伀鐒拌垶鑰?/a> 2010-03-15 02:00 <a href="http://m.tkk7.com/Jluoguang/archive/2010/03/15/315359.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Prototype(鍘熷瀷)http://m.tkk7.com/Jluoguang/archive/2009/03/03/257456.html姘歌繙鐨勭伀鐒拌垶鑰?/dc:creator>姘歌繙鐨勭伀鐒拌垶鑰?/author>Tue, 03 Mar 2009 00:19:00 GMThttp://m.tkk7.com/Jluoguang/archive/2009/03/03/257456.htmlhttp://m.tkk7.com/Jluoguang/comments/257456.htmlhttp://m.tkk7.com/Jluoguang/archive/2009/03/03/257456.html#Feedback0http://m.tkk7.com/Jluoguang/comments/commentRss/257456.htmlhttp://m.tkk7.com/Jluoguang/services/trackbacks/257456.html 閫氳繃灝嗕竴涓師鍨嬪璞′紶緇欓偅涓鍙戝姩鍒涘緩鐨勫璞★紝榪欎釜瑕佸彂鍔ㄥ垱寤虹殑瀵硅薄閫氳繃璇鋒眰鍘熷瀷瀵硅薄鎷瘋礉瀹冧滑鑷繁鏉ュ疄鏂藉垱寤猴紝鎵浠rototype妯″紡鍏佽涓涓璞″啀鍒涘緩鍙﹀涓涓彲瀹氬埗鐨勫璞★紝鏍規湰鏃犻渶鐭ラ亾浠諱綍濡備綍鍒涘緩鐨勭粏鑺傘?br /> 浠ョ粏鑳炰負渚嬶細緇嗚優a鍏嬮殕鍑虹粏鑳瀊錛岀粏鑳瀉銆乥鍏鋒湁鐩稿悓鐨勫睘鎬?br /> 濡傛灉浠ヤ竴鑸殑鍋氭硶鎴戜滑浼氳繖鏍鳳細
public class Cell {
    
    
// 緇嗚優澹?/span>
    private String cellWall = null;
    
    
// 緇嗚優鑶?/span>
    private String membrane = null;
    
    
// 緇嗚優鏍?/span>
    private String nucleus = null;
    
    
/**
     * 鐪佺暐get銆乻et鏂規硶
     
*/


瀹㈡埛绔皟鐢細
        // 浜х敓緇嗚優A
        Cell cellA = new Cell("緇嗚優澹?/span>""緇嗚優鑶?/span>""緇嗚優鏍?/span>");

        
/* 浜х敓涓嶢鍚屾牱鐨勭粏鑳濨  */
        Cell cellB 
= new Cell();
        cellB.setCellWall(cellA.getCellWall());
        cellB.setMembrane(cellA.getMembrane());
        cellB.setNucleus(cellB.getNucleus());
榪欑綣佺悙鑰岄噸澶嶆ч珮鐨勫鍒惰兘涓嶈兘鍙啓涓閬嶅憿錛熺瓟妗堟槸“鏈?#8221;

public class Cell implements Cloneable {
    
    
// 緇嗚優澹?/span>
    private String cellWall = null;
    
    
// 緇嗚優鑶?/span>
    private String membrane = null;
    
    
// 緇嗚優鏍?/span>
    private String nucleus = null;
    
    
public Cell clone() throws CloneNotSupportedException {
        
return (Cell)super.clone();
    }

瀹㈡埛绔皟鐢細
public class PrototypeClient {

    
public static void main(String[] args) throws CloneNotSupportedException {
        
// 浜х敓緇嗚優A
        Cell cellA = new Cell("緇嗚優澹?/span>""緇嗚優鑶?/span>""緇嗚優鏍?/span>");

        
/* 浜х敓涓嶢鍚屾牱鐨勭粏鑳濨  */
        Cell cellB 
= cellA.clone();
        
        System.out.println(cellA 
== cellB);
    }

}
涓婅堪紼嬪簭榪愯鐨勭粨鏋滀負false錛岃鏄巆lone()鍦ㄥ唴瀛樺尯寮杈熶簡鍙︿竴鍧楀紩鐢ㄣ備互涓婄殑clone鏂規硶涔熻縐頒負“嫻呭害鎷瘋礉”錛屽叧浜庢繁搴︽嫹璐濊繖閲屽氨涓嶅仛璇﹁浜嗐?br />
鍦ㄤ竴涓鏉傜殑綾誨眰嬈″綋涓紝褰撶郴緇熷繀欏諱粠鍏朵腑鐨勮澶氱被鍨嬪垱寤烘柊瀵硅薄鏃訛紝鍙互鑰冭檻鍘熷瀷銆?br />


]]>
鎶借薄宸ュ巶妯″紡http://m.tkk7.com/Jluoguang/archive/2009/03/01/257119.html姘歌繙鐨勭伀鐒拌垶鑰?/dc:creator>姘歌繙鐨勭伀鐒拌垶鑰?/author>Sun, 01 Mar 2009 00:35:00 GMThttp://m.tkk7.com/Jluoguang/archive/2009/03/01/257119.htmlhttp://m.tkk7.com/Jluoguang/comments/257119.htmlhttp://m.tkk7.com/Jluoguang/archive/2009/03/01/257119.html#Feedback0http://m.tkk7.com/Jluoguang/comments/commentRss/257119.htmlhttp://m.tkk7.com/Jluoguang/services/trackbacks/257119.html鍦ㄤ笂綃囨枃绔犱腑鎴戜滑鐢ㄨ倝閾鴻繖鏍蜂竴涓満鏅弿榪頒簡綆鍗曞伐鍘傛ā寮忥紝鑲夐摵鑰佹澘鍗栫殑涓嶅悓鍝佺鐨勭尓鑲夛紝璁炬兂闅忕潃鏃墮棿鐨勬秷閫濓紝鑲夐摵鐨勭敓鎰忔棩瓚嬬孩鐏紝瀹㈡埛瑕佹眰澧炲姞楦侀浮銆佺墰絳変箣綾葷殑鑲夛紝榪欐牱鎴戜滑灝辮鍒嗗埆寮曡繘浜氭床楦侀潪媧查腑錛屼簹媧查浮銆侀潪媧查浮絳夌瓑錛屽緢鏄庢樉鍘熷厛鐨勮蔣浠惰璁″氨鏄劇殑寰堟棤鍔涗簡錛屾牴鏈傚簲涓嶄簡鐜頒粖鐨勭姸鎬併傛墍浠ュ氨寮曡繘浜嗘娊璞″伐鍘傛ā寮忋?/p>

鎶借薄宸ュ巶妯″紡鏄墍鏈夊艦鎬佺殑宸ュ巶妯″紡涓渶涓烘娊璞″拰鏈鍏蜂竴鑸х殑涓縐嶅艦鎬併?/p>

涓轟簡鏂逛究寮曡繘鎶借薄宸ュ巶妯″紡錛屽紩榪涗竴涓柊姒傚康錛?font color="#000080">浜у搧鏃忥紙Product Family錛?/font>銆傛墍璋撲駭鍝佹棌錛屾槸鎸囦綅浜庝笉鍚屼駭鍝佺瓑綰х粨鏋勶紝鍔熻兘鐩稿叧鑱?/span>鐨勪駭鍝?/span>緇勬垚鐨勫鏃忋傚鍥撅細

鍥句腑涓鍏辨湁鍥涗釜浜у搧鏃忥紝鍒嗗竷浜庝笁涓笉鍚岀殑浜у搧絳夌駭緇撴瀯涓傚彧瑕佹寚鏄庝竴涓駭鍝佹墍澶勭殑浜у搧鏃忎互鍙婂畠鎵灞炵殑絳夌駭緇撴瀯錛屽氨鍙互鍞竴鐨勭‘瀹氳繖涓駭鍝併?/p>

鎵璋撶殑鎶借薄宸ュ巶鏄寚涓涓伐鍘傜瓑綰х粨鏋勫彲浠ュ垱寤哄嚭鍒嗗睘浜庝笉鍚屼駭鍝佺瓑綰х粨鏋勭殑涓涓駭鍝佹棌涓殑鎵鏈夊璞°傚鏋滅敤鍥炬潵鎻忚堪鐨勮瘽錛屽涓嬪浘錛?/p>

AbstractFactory妯″紡鐨勭粨鏋勫涓嬶細

鍥句腑AfricanPig鍜孉siaPig鏋勬垚涓涓瓑綰х粨鏋勶紝AfiricanPorkFactory鐢熶駭鍑烘潵鐨勫寘鎷珹fricanPig鍜孉fricanDuck鏋勬垚涓涓駭鍝佹棌銆?/p>

鎶借薄宸ュ巶錛圓bstract Factory錛夎鑹詫細鎷呬換榪欎釜瑙掕壊鐨勬槸宸ュ巶鏂規硶妯″紡鐨勬牳蹇冿紝瀹冩槸涓庡簲鐢ㄧ郴緇熷晢涓氶昏緫鏃犲叧鐨勩?

鍏蜂綋宸ュ巶錛圕oncrete Factory錛夎鑹詫細榪欎釜瑙掕壊鐩存帴鍦ㄥ鎴風鐨勮皟鐢ㄤ笅鍒涘緩浜у搧鐨勫疄渚嬨傝繖涓鑹插惈鏈夐夋嫨鍚堥傜殑浜у搧瀵硅薄鐨勯昏緫錛岃岃繖涓昏緫鏄笌搴旂敤緋葷粺鐨勫晢涓氶昏緫绱у瘑鐩稿叧鐨勩?/p>

鎶借薄浜у搧錛圓bstract Product錛夎鑹詫細鎷呬換榪欎釜瑙掕壊鐨勭被鏄伐鍘傛柟娉曟ā寮忔墍鍒涘緩鐨勫璞$殑鐖剁被錛屾垨瀹冧滑鍏卞悓鎷ユ湁鐨勬帴鍙c?/p> 鍏蜂綋浜у搧錛圕oncrete Product錛夎鑹詫細鎶借薄宸ュ巶妯″紡鎵鍒涘緩鐨勪換浣曚駭鍝佸璞¢兘鏄煇涓涓叿浣撲駭鍝佺被鐨勫疄渚嬨傝繖鏄鎴風鏈緇堥渶瑕佺殑涓滆タ錛屽叾鍐呴儴涓瀹氬厖婊′簡搴旂敤緋葷粺鐨勫晢涓氶昏緫銆?br />
涓婂浘鐨勭▼搴忓涓嬶細

public interface Duck {

    
public void send();
}

public class AsiaDuck implements Duck {

    
public void send() {
        System.out.println(
"send Asia duck");
    }
}

public class AfricanDuck implements Duck {

    
public void send() {
        System.out.println(
"send African duck");
    }
}

public interface Pig {

    
public void send();
}

public class AsiaPig implements Pig {

    
public void send() {
        System.out.println(
"send Asia pig");
    }
}

public class AfricanPig implements Pig {

    
public void send() {
        System.out.println(
"send African pig");
    }
}

public abstract class AbstractFactory {

    
public abstract Pig createPig();
    
    
public abstract Duck createDuck();
}

public class AfricanPorkFactory extends AbstractFactory {

    @Override
    
public Duck createDuck() {
        
return new AfricanDuck();
    }

    @Override
    
public Pig createPig() {
        
return new AfricanPig();
    }
}

public class AsiaPorkFactory extends AbstractFactory {

    @Override
    
public Duck createDuck() {
        
return new AsiaDuck();
    }

    @Override
    
public Pig createPig() {
        
return new AsiaPig();
    }
}

public class PorkStoreClient {

    
private Pig pig = null;
    
private Duck duck = null;
    
    
public PorkStoreClient(AbstractFactory factory) {
        pig 
= factory.createPig();
        duck 
= factory.createDuck();
    }
    
    
public void send() {
        pig.send();
        duck.send();
    }
    
    
public static void main(String[] args) {
        AbstractFactory africanFactory 
= new AfricanPorkFactory();
        PorkStoreClient africanPorkStore 
= new PorkStoreClient(africanFactory);
        africanPorkStore.send();
        
        AbstractFactory asiaFactory 
= new AsiaPorkFactory();
        PorkStoreClient asiaPorkStore 
= new PorkStoreClient(asiaFactory);
        asiaPorkStore.send();
    }
}
涓婅堪鐨勫満鏅彲鑳戒笉鏄緢濂界殑闃愯堪浜嗘娊璞″伐鍘傜殑搴旂敤錛屼絾鎴戜滑濡傛灉鎹釜鍦烘櫙鍛紵鎶妕ext鍜宐utton浣滀負浜у搧錛岃孶nixText鍜孶nixButton鏋勬垚Unix浜у搧鏃忥紝WinText鍜學inButton浣滀負Window浜у搧鏃忋傝繕鏈夋苯杞︾殑闆墮儴浠剁瓑絳夊満鏅兘鑳借浣犳洿鍔犱簡瑙f娊璞″伐鍘傜殑搴旂敤銆?br />
鎶借薄宸ュ巶妯″紡涓庡伐鍘傛柟娉曟ā寮忕殑鍖哄埆
宸ュ巶鏂規硶妯″紡鏄竴縐嶆瀬绔儏鍐電殑鎶借薄宸ュ巶妯″紡錛岃屾娊璞″伐鍘傛ā寮忓彲浠ョ湅鎴愭槸宸ュ巶鏂規硶妯″紡鐨勪竴縐嶆帹騫褲?
(1)銆佸伐鍘傛柟娉曟ā寮忔槸鐢ㄦ潵鍒涘緩涓涓駭鍝佺殑絳夌駭緇撴瀯鐨勶紝鑰屾娊璞″伐鍘傛ā寮忔槸鐢ㄦ潵鍒涘緩澶氫釜浜у搧鐨勭瓑綰х粨鏋勭殑銆傚伐鍘傛柟娉曞垱寤轟竴鑸彧鏈変竴涓柟娉曪紝鍒涘緩涓縐嶄駭鍝併傛娊璞″伐鍘備竴鑸湁澶氫釜鏂規硶錛屽垱寤轟竴緋誨垪浜у搧銆?
(2)銆佸伐鍘傛柟娉曟ā寮忓彧鏈変竴涓娊璞′駭鍝佺被錛岃屾娊璞″伐鍘傛ā寮忔湁澶氫釜銆傚伐鍘傛柟娉曟ā寮忕殑鍏蜂綋宸ュ巶綾誨彧鑳藉垱寤轟竴涓叿浣撲駭鍝佺被鐨勫疄渚嬶紝鑰屾娊璞″伐鍘傛ā寮忓彲浠ュ垱寤哄涓?



]]>
宸ュ巶鏂規硶妯″紡http://m.tkk7.com/Jluoguang/archive/2009/02/28/257114.html姘歌繙鐨勭伀鐒拌垶鑰?/dc:creator>姘歌繙鐨勭伀鐒拌垶鑰?/author>Fri, 27 Feb 2009 23:38:00 GMThttp://m.tkk7.com/Jluoguang/archive/2009/02/28/257114.htmlhttp://m.tkk7.com/Jluoguang/comments/257114.htmlhttp://m.tkk7.com/Jluoguang/archive/2009/02/28/257114.html#Feedback0http://m.tkk7.com/Jluoguang/comments/commentRss/257114.htmlhttp://m.tkk7.com/Jluoguang/services/trackbacks/257114.html 綾誨浘濡備笅錛?br />
鍘熷厛鎴戜滑鍙兘浼氬湪瀹㈡埛绔洿鎺ヨ皟鐢ㄦ瘮濡侾ig asiaPig = new AsiaPig()涔嬬被鐨勪唬鐮侊紝浣嗙幇鍦ㄦ垜浠彧闇璋冪敤PigFactory.createPig(***)鏉ヨ揪鍒板Pig瀹炵幇綾葷殑鍒涘緩錛岃繖鏍峰鎴風紼嬪簭涓秴綾葷殑浠g爜鍜屽瓙綾誨璞$殑鍒涘緩浠g爜瑙h棔浜嗐?br />
public class PigFactory {

    @SuppressWarnings(
"unchecked")
    
public static Pig createPig(String pigName) {
        
if ("AsiaPig".equals(pigName)) {
            
return new AsiaPig();
        } 
else if ("AfricanPig".equals(pigName)) {
            
return new AfricanPig();
        } 
else {
            
return null;
        }
    }
}

public class PorkStore {

    
private static void sendPork(String pigName) {
        Pig africanPig 
= PigFactory.createPig(pigName);
        africanPig.send();
        
    }
    
     
public static void main(String[] args) {
         sendPork(
"AsiaPig");
         sendPork(
"AfricanPig");
    }
}

榪欐牱鍋氱殑鍙︿竴涓棶棰樺張鍑烘潵浜嗭紝闅忕潃if else鐨勫澶氫唬鐮佸潡鍙樼殑瓚婅秼搴炲ぇ錛岃繖鏃跺氨鍙埄鐢╦ava鐨勫彂灝勬潵榪涜鏀瑰杽浜嗭紝璋冩暣濡備笅錛?br />
package factoryMethod;

public class PigFactory {

    @SuppressWarnings(
"unchecked")
    
public static Pig createPig(String pigNme) {
        
try {
            Class animalClass 
= Class.forName(pigNme);
            
            
return (Pig)animalClass.newInstance();
        } 
catch (ClassNotFoundException e) {
            
throw new RuntimeException("caught exception while found the class", e);
        } 
catch (InstantiationException e) {
            
throw new RuntimeException("caught exception while instantiation", e);
        } 
catch (IllegalAccessException e) {
            
throw new RuntimeException(e);
        }
    }
}

public class PorkStore {

    
private static void sendPork(String pigName) {
        Pig africanPig 
= PigFactory.createPig(pigName);
        africanPig.send();
        
    }
    
     
public static void main(String[] args) {
         sendPork(
"factoryMethod.AsiaPig");
         sendPork(
"factoryMethod.AfricanPig");
    }
}

鍏卞巶鏂規硶妯″紡瀹氫箟浜嗕竴涓垱寤哄璞$殑鎺ュ彛錛屼絾鐢卞瓙綾誨喅瀹氳瀹炰緥鍖栫殑綾繪槸鍝竴涓紝璁╃被鎶婂疄渚嬪寲鎺ㄨ繜鍒板瓙綾?/strong>銆?br />

]]>
鍗曚緥妯″紡http://m.tkk7.com/Jluoguang/archive/2009/02/27/257101.html姘歌繙鐨勭伀鐒拌垶鑰?/dc:creator>姘歌繙鐨勭伀鐒拌垶鑰?/author>Fri, 27 Feb 2009 15:47:00 GMThttp://m.tkk7.com/Jluoguang/archive/2009/02/27/257101.htmlhttp://m.tkk7.com/Jluoguang/comments/257101.htmlhttp://m.tkk7.com/Jluoguang/archive/2009/02/27/257101.html#Feedback0http://m.tkk7.com/Jluoguang/comments/commentRss/257101.htmlhttp://m.tkk7.com/Jluoguang/services/trackbacks/257101.html 鏈変簺澶х殑瀵硅薄鍏跺疄鎴戜滑鍙渶瑕佷竴涓紝姣斿璇達細綰跨▼姹犮佺紦瀛樸佹棩蹇楀錛屽厖褰撴墦鍗版満銆佹樉鍗$瓑璁懼鐨勯┍鍔ㄧ▼搴忕殑瀵硅薄絳夛紝榪欑被瀵硅薄鍙兘鏈変竴涓疄渚嬶紝濡傛灉鍒墮犲嚭澶氫釜灝變細浜х敓璁稿闂銆?br /> 鍗曚歡妯″紡紜繚涓涓被鍙兘鏈変竴涓疄渚嬶紝騫朵笖鎻愪緵涓涓叏灞鐨勮闂偣銆?br />
public class Singleton {

    
private static Singleton instance = null;
    
    
private Singleton () { }
    
    
public static Singleton getInstance() {
        
if (instance == null) {
            instance 
= new Singleton();
        }
        
        
return instance;
    }

}

鍒濈湅璧鋒潵榪欐浠g爜娌℃湁涓鐐歸棶棰橈紝浣嗗鏋滃彂鐢熷綰跨▼鐨勬儏鍐靛憿錛熷洜涓哄綰跨▼鐨勪笉紜畾鎬э紝灝卞緢鏈夊彲鑳戒駭鐢熷緢澶氫釜Singleton瀹炰緥浜嗐傚啀鏉ユ敼鍠勪笅璁╁畠鑳藉閫傚簲澶氱嚎紼嬶紝濡備笅錛?br />
public class Singleton {

    
private static Singleton instance = null;
    
    
private Singleton () {}
    
    
public static synchronized Singleton getInstance() {
        
if (instance == null) {
            instance 
= new Singleton();
        }
        
        
return instance;
    }

}

榪欐牱鍋氬綰跨▼鐨勯棶棰樻槸娑堥櫎浜嗭紝浣嗗嵈浜х敓鍙﹀鐨勯棶棰橈細浠ュ悗姣忔璁塊棶閮介渶瑕佹墽琛屽悓姝ユ柟娉曪紝浜х敓浜嗕弗閲嶇殑鎬ц兘闂銆傚啀鏉ユ敼鍠勪笅澶氱嚎紼嬶紝濡備笅錛?br />
1銆佷嬌鐢ㄦュ垏鍒涘緩瀹炰緥錛岃屼笉浣跨敤寤惰繜鍔犺澆
public class Singleton {

    
private static Singleton instance = new Singleton();
    
    
private Singleton () {}
    
    
public static  Singleton getInstance() {
        
return instance;
    }

}
鐜板湪鎴戜滑渚濊禆JVM鍦ㄥ姞杞借繖涓被鏃墮┈涓婂垱寤烘綾葷殑鍗曚歡瀹炰緥錛孞VM淇濊瘉鍦ㄤ換浣曠嚎紼嬭闂甶nstance闈欐佸彉閲忎箣鍓嶅厛鍒涘緩姝ゅ疄渚嬨?br />
2銆佷嬌鐢ㄥ弻閲嶆鏌ュ姞閿侊紝鍦╣etInstance涓噺灝戜嬌鐢ㄥ悓姝?br />
public class Singleton {

    
// volatile 鏈夋晥鐨勭‘淇濆綋instance琚垵濮嬪寲鎴愬疄渚嬫椂錛屽綰跨▼姝g‘鐨勫鐞唅nstance鍙橀噺銆?/span>
    private volatile static  Singleton instance = null;
    
    
private Singleton () {}
    
    
public static  Singleton getInstance() {
        
        
// 濡傛灉瀹炰緥涓嶅瓨鍦ㄥ氨榪涘叆瀹炰緥鍧楋紝鍙湁絎竴嬈℃墠褰誨簳鎵ц榪欓噷鐨勪唬鐮併?/span>
        if (instance == null) {
            
// 榪欓噷鏈夋晥鐨勯樆姝簡澶氱嚎紼嬮棶棰樼殑浜х敓
            synchronized (Singleton.class) {
                
// 榪涘叆鍖哄潡鍚庯紝鍐嶆鏌ヤ竴嬈★紝鍙湁瀹炰緥涓虹┖鎵嶅垱寤哄疄渚嬨?/span>
                if (instance == null) {
                    instance
= new Singleton();
                }
            }
        }
        
        
return instance;
    }

}



]]>
主站蜘蛛池模板: 中文字幕免费播放| 成人免费无遮挡无码黄漫视频| 亚洲大片在线观看| 很黄很色很刺激的视频免费| 亚洲国产精品无码久久九九大片| 亚洲国产精品激情在线观看| 男的把j放进女人下面视频免费| 亚洲人成人77777网站不卡 | 婷婷综合缴情亚洲狠狠尤物| 久别的草原电视剧免费观看| 亚洲人成色99999在线观看| 国产亚洲成人久久| 欧洲黑大粗无码免费| 国产美女视频免费观看的网站| 久久久久亚洲av无码专区喷水 | 男女超爽刺激视频免费播放| 亚洲午夜无码毛片av久久京东热| 免费看男女下面日出水视频 | 日韩中文字幕在线免费观看| 一级片在线免费看| 亚洲天天做日日做天天看| 免费人成网站在线观看10分钟| 亚洲丶国产丶欧美一区二区三区| 亚洲国产精品一区二区九九| 久久国产精品萌白酱免费| 亚洲一线产品二线产品| 国产性爱在线观看亚洲黄色一级片 | 一级看片免费视频囗交| 自拍偷自拍亚洲精品第1页| 久久青青草原国产精品免费| 亚洲视频免费在线看| 国产91在线免费| 91福利视频免费观看| 色网站在线免费观看| 老色鬼久久亚洲AV综合| 四虎影视在线永久免费观看| 成人性做爰aaa片免费看| 亚洲暴爽av人人爽日日碰| 亚洲av永久无码精品古装片 | 免费精品人在线二线三线区别| 中文字幕乱码系列免费|