锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
娑夊強鐨勯潰鍚戝璞¤璁″師鍒欙細鍗曚竴鑱岃矗鍘熷垯銆佸皝瑁呭彉鍖栥侀潰鍚戞帴鍙g紪紼嬨佷緷璧栧掔疆鍘熷垯銆佸紑闂師鍒欍?/span>
1.鍙戝竷璁㈤槄妯″瀷錛?
鍋囧鏈夐渶姹傚涓?
閾惰闇瑕佹妸甯愭埛鐨勫姹囨銆佽漿璐︽垨鍙栨絳夋搷浣滈氱煡鐢ㄦ埛錛岄斿緞鍖呮嫭鎵嬫満鐭俊銆?email絳夈傚鍥炬墍寮忋?br>
鑷劧鍦幫紝鎴戜滑鍙互榪欐牱鍋氾細
{
BankAccount bankAccount;
public void process()
{
//bankAccount...
this.sendEmail(userEmail);
this.sendPhone(phoneNumber);
}
private void sendEmail(String userEmail)
{
//
}
private void sendMobile(String phoneNumber)
{
//
}
}
ATM鏈虹殑 process()鏂規(guī)硶鍦ㄥ鐞嗗畬涓氬姟閫昏緫鍚庯紝鐢眅mail鍜宲hone閫氱煡鐢ㄦ埛銆?br>
2.鍒濇閲嶆瀯
濂藉儚鏈塨ad smells錛屾仼錛屾牴鎹?span style="COLOR: #049a0e">鍗曚竴鑱岃矗鍘熷垯銆傛柊澧濫mail綾誨拰Phone綾伙紝騫舵妸鐩稿叧涓氬姟閫昏緫鏀瑰埌BankAccount綾誨畬鎴愩備簬鏄垜浠殑浠g爜鍙互榪欐牱錛?br>
public class ATM
{
BankAccount bankAccount;
public void process()
{
//
bankAccount.withDraw();
}
}
public class BankAccount
{
Email email;
Mobile mobile;
public void withDraw()
{
//
email.sendEmail(userEmail);
mobile.sendMobile(phoneNumber);
}
}
public class Email
{
public void sendEmail(String userEmail)
{
}
}
public class Mobile
{
public void sendMobile(String phoneNumber)
{
}
}
涓嬮潰鏄唬鐮佺殑UML鍥撅細
3.鎷ユ姳鍙樺寲
榪欎釜瑙e喅鏂規(guī)鏈夐棶棰樺悧?鍙兘娌℃湁闂銆傚畠瀹炵幇浜嗘垜浠殑闇姹傦細鍦ㄥ笎鎴鋒湁鎿嶄綔鍙樺姩鐨勬椂鍊欙紝閫氱煡Email鍜孧obile鍘誨彂閫佷俊鎭粰鐢ㄦ埛銆備絾榪欐牱璁捐灝辮凍澶熶簡鍚楋紵鍙兘瓚沖浜嗭紝鍙兘榪樹笉澶熴?br>鑰冭檻濡備笅涓ょ鎯呭喌錛?br>1.鍦ㄥ緢闀夸竴孌墊椂闂撮噷錛岃闃呮柟寮忓緢紼沖畾錛屾瘮濡傜郴緇熷彧閫氳繃閭歡鍜屾墜鏈虹煭淇¤繘琛屼俊鎭闃咃紝閭d箞榪欎釜瀹炵幇娌℃湁澶ぇ闂錛?br>2.鍦ㄨ繎涓涓ゅ勾鎴栨洿鐭殑鏃墮棿錛屾洿澶氱殑璁㈤槄鏂瑰紡灝嗕細婧愭簮涓嶆柇鍦拌鍔犺繘鏉ワ細姣斿鍙互鐧誨綍瀹樻柟緗戠珯絳夌瓑錛岄偅榪欎釜瀹炵幇灝辨湁闂錛氬啀鐪嬩竴涓嬫垜浠殑UML鍥撅紝綾籅ankAccount渚濊禆浜嶦mail鍜孧obile綾伙紒灝辨槸璇達紝濡傛灉闇瑕佹坊鍔犳柊鐨勮闃呮柟寮廇TM綾葷殑process()鏂規(guī)硶鍔垮繀瑕侀噸鏂拌璁★紒
浜庢槸鎴戜滑鐨凚ankAccount綾諱笉寰椾笉鍙樻垚錛?br>
{
Email email;
Mobile mobile;
Web web;
public void withDraw()
{
//
email.sendEmail(userEmail);
mobile.sendMobile(phoneNumber);
web.sendWeb(webSite);
}
}
濡傛灉榪樻湁鍙︿竴縐嶆柟寮忥紝閭d箞process()鏂規(guī)硶灝卞張浼氶渶瑕佸姞鍏ワ細otherSubscribe.send...();絳夋柟娉曪紝鍙﹀濡傛灉璁㈤槄綾葷殑鎺ュ彛(榪欓噷鎸噑endEmail絳夋柟娉?鍙戠敓鍙樺寲錛孊ankAccount鐨剋ithDraw()鏂規(guī)硶涔熷繀欏繪湁鐩稿簲鐨勫彉鍖栵紒榪欏綋鐒舵槸縐嶇伨闅俱傛垜浠繀欏繪敼鍙樿繖縐嶆儏鍐點?br>鍏堣В鍐抽仐鐣欓棶棰橈細絎竴縐嶆儏鍐碉細璁㈤槄鏂瑰紡鐩稿紼沖畾鐨勬儏鍐典笅鍛紵涓嶆敼鍔ㄤ細浜х敓鐏鵑毦鍚楋紵
涓漢璁や負錛氫笉浼氥傛瘮濡傛煇涓郴緇熶俊鎭彧閫氳繃鎵嬫満鐭俊璁㈤槄錛岄偅灝辨病鏈夊繀瑕佸お鍦ㄦ剰榪欎釜闂銆傝冭檻鍛ㄥ叏涓鐐逛笉濂藉悧錛屽鏋滃皢鏉ユ湁綾諱技闇姹傚憿錛熷皬蹇?span style="COLOR: red">榪囧害璁捐錛佷負浜嗗皢鏉ュ彲鑳藉嚭鐜伴渶姹傝岃繘琛岀殑棰勫厛璁捐騫朵笉澶ソ銆傛湁闇姹傦紝鎵嶆湁璁捐銆?br>
鐜板湪鏉ョ湅瑙e喅涔嬮亾錛?br>
榪愮敤闈㈠悜瀵硅薄鐨勬濇兂錛屾娊璞″嚭闂鎵鍦ㄣ侭ankAccount綾諱緷璧栦簬 Email綾誨拰Mobile綾伙紝鑰孍mail鍜孧obile鏄叿浣撶殑綾伙紝ATM渚濊禆浜庡叿浣撶殑綾?/span>浜嗭紝鑰屼笖榪樹笉姝竴涓紒鍥炲繂涓涓?span style="COLOR: #2000ff">渚濊禆鍊掔疆鍘熷垯錛氬叿浣撳簲璇ヤ緷璧栦簬鎶借薄錛屽簳灞傛ā寮忓簲璇ヤ緷璧栦簬楂樺眰妯″紡銆?/span>閭f庝箞瀹炵幇渚濊禆鍊掔疆鍘熷垯鍛?闈㈠悜瀵硅薄緙栫▼涓湁涓鏉℃葷殑鍘熷垯錛?span style="COLOR: #049a0e">灝佽鍙樺寲銆傚浣曞疄鐜?span style="COLOR: #049a0e">灝佽鍙樺寲錛熼渶瑕佹垜浠繖鏍鳳細闈㈠悜鎺ュ彛緙栫▼銆?/span>
鍥為【涓涓嬶細鎴戜滑鍦ㄨ璁′腑瀹炵幇綾諱緷璧栦簡鍏蜂綋鐨勭被錛岃繚鍙嶄簡渚濊禆鍊掔疆鍘熷垯銆備負浜嗛伒寰緷璧栧掔疆鍘熷垯錛屾垜浠噰鐢ㄩ潰鍚戞帴鍙g紪紼嬬殑鏂規(guī)硶錛屼粠鑰屽疄鐜頒簡闈㈠悜瀵硅薄鐨勪竴鏉℃葷殑鍘熷垯錛氬皝瑁呭彉鍖栥?/span>
鐪嬩唬鐮侊細
{
public void upDate(UserAccount userAccount);
}
public class Email implements AccountObserver
{
public void upDate(UserAccount userAccount)
{
}
}
public class Mobile
{
public void upDate(UserAccount userAccount)
{
}
}
public class BankAccount
{
List <AccountObserver> observer = new ArrayList<AccountObserver>;
public void withDraw()
{
//
for (AccountObserver ao : observer)
{
ao.upDate(userAccount)
}
}
public void addOberver(AccountObserver accountObserver)
{
observer.add(accountObserver);
}
}
UML鍥撅細
鐜板湪錛孊ankAccount渚濊禆浜巌nterface AccountObserver銆侲mail鍜孧obile瀹炵幇AccountObserver鎺ュ彛銆?span style="COLOR: #049a0e">閫氳繃閬靛驚闈㈠悜鎺ュ彛緙栫▼閬靛驚浜?span style="COLOR: #049a0e">渚濊禆鍊掔疆鍘熷垯銆?/span>
4.寮闂師鍒?/span>
緇堜簬淇敼濂戒簡錛屾垜浠В鍐充簡璁㈤槄鑰呭彉鍖栫殑闂銆備絾濡傛灉鍙戝竷鑰呬篃鍊懼悜浜庡彉鍖栧憿錛熻繖灝辯壍娑夊埌闈㈠悜瀵硅薄閲岀殑鍙︿竴涓師鍒欙細寮闂師鍒?/span>銆?span style="COLOR: #049a0e">鍗籌細瀵規(guī)墿灞曞紑鏀撅紝瀵逛慨鏀瑰叧闂?/span>鍏蜂綋鎬庝箞鍋氬憿錛熼氳繃鎶借薄綾伙紝浠庢娊璞$被緇ф壙鍏蜂綋綾匯?br>鐪嬫渶緇堢殑浠g爜(鍙啓鍑犱釜鍏抽敭鐨勬柟娉曪紝鍏ㄨ矊鍙湅鏈鍚庣殑UML鍥?錛?br>
璁㈤槄錛?
{
public void upDate(UserAccount userAccount);
}
public class Email implements AccountObserver
{
public void upDate(UserAccount userAccount)
{
}
}
public class Mobile implements AccountObserver
{
public void upDate(UserAccount userAccount)
{
}
}
鍙戝竷錛?br>
public abstract class Subject
{
List <AccountObserver> observer = new ArrayList<AccountObserver>;
protected void withDraw()
{
//
notify();
}
protected void notify(UserAccount userAccount)
{
for (AccountObserver ao : observer)
{
ao.upDate(userAccount)
}
}
protected void addOberver(AccountObserver accountObserver)
{
observer.add(accountObserver);
}
protected void deleteOberver(AccountObserver accountObserver)
{
observer.remove(accountObserver);
}
}
public class BankAccount extends Subject
{
public void withDraw()
{
//
for (AccountObserver ao : observer)
{
ao.upDate(userAccount)
}
}
}
鐪婾ML鍥撅細
5.瑙傚療鑰呮ā寮忔鍐?/span>
榪欏氨鏄瀵熻呮ā寮忎簡錛屽姣斾竴涓嬪畼鏂圭殑UML鍥撅紝鏄笉鏄竴鐩簡鐒朵簡鍛紵
紼嶄綔璇存槑(榪欓噷鐨勪緷璧栭兘鏄寚騫夸箟鐨勪緷璧?錛?br>1.琚瀵熻匔oncreteSubject緇ф壙鑷猄ubject鎶借薄綾伙紱
2.Subject鎶借薄綾諱緷璧栦簬瑙傚療鑰匫bserver鎶借薄鎺ュ彛錛?br>3.瑙傚療鑰匔oncreteObserver瀹炵幇Observer 鎺ュ彛錛?br>4.瑙傚療鑰匔oncreteObserver闂存帴渚濊禆浜嶤oncreteSubject綾匯?br>濡傛灉瑕佸鍔犲叿浣撶殑瑙傚療鑰咃紝鍙鍐嶅疄鐜癘bsever鎺ュ彛鍗沖彲錛岃岃瑙傚療鏂逛笉闇瑕佸仛浠諱綍淇敼銆傝屽鏋滈渶瑕佷慨鏀硅瑙傚療鑰咃紝鍙浠嶴ubject鎶借薄綾葷戶鎵垮嵆鍙?br>
]]>
http://www.otasuke.ne.jp/modules/xwords/index.php
http://jp.hjenglish.com/papers.aspx
www.21cnhr.gov.cn
http://www.ytv.co.jp/conan/
http://www13.tianya.cn/new/Publicforum/Content.asp?idWriter=3915484&Key=228823315&strItem=no04&idArticle=483393&flag=1
http://piano.stedu.net/
http://www.nhk.or.jp/ <<NHK>> http://www.nhk.or.jp/r-news/
http://www.intel.com/software/cn/mcwebcast/#slide=1 intel class
http://www.yangmi.net/ky/Print.asp?ArticleID=13801 錛侊紒錛?nbsp;
http://bbs.i18.cn/index.asp 涓浗闆跺敭緗?nbsp;
http://www.fortunespace.net/forum/ 涓浗璨″瘜璜栧
http://www.yesky.com/SoftChannel/72357786515668992/20040129/1764106.shtml 姹傚拰
http://www.yesky.com/SoftChannel/72348968914255872/20050126/1905902.shtml Excel ?鐢?nbsp;
http://www.yesky.com/soft/office/excel-news/his/his_4.shtml Excel
http://www.4399.net/flash/1602_2.htm?800 golden
http://edu.itbulo.com/200511/58025.htm ITbulo
http://202.103.49.240/jsjzs/excel/excelyy.htm Excel 鎺掑簭
http://192.168.1.23/use_wf/Dep_App WF WF WF WF
http://www.yodian.com 鏈夌偣
http://www.dlsp.com.cn DLSP
http://64.233.179.104/search?q=cache:QqZYnKlqqEwJ:members.at.infoseek.co.jp/skillup/yougo/yougo6.htm+EOB%E3%80%80Electronic&hl=ja&gl=jp&ct=clnk&cd=1&lr=lang_ja
http://www.codesky.net CODE
http://www1.tianya.cn/new/TechForum/Content.asp?idWriter=3915484&Key=840161655&idItem=81&idArticle=251915
http://www.chinacs.net/archives/8/2004/12/12/3188.html C#
http://music.whnews.cn/playgame/flashshow.php?flashid=895 SC
http://www.tianya.cn/new/TechForum/Content.asp?idWriter=3915484&Key=481775086&idItem=81&idArticle=562447
http://192.168.1.211/TRIAL/upload/jinji/study/access/ ACCESS
http://www.wswire.com/ huaerjie dianxun
http://infoseek.amikai.com/amitext/indexUTF8.jsp
http://www.51windows.net/pages/ado/?url=/pages/ado/mdmthaddnew.htm ADO ADO
http://www.51windows.net/
http://www.codechina.net/resource/sort.php/621/4 Access VBA Code
http://jakarta.apche.org struts
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/csref/html/vcoricsharptutorials.asp MSDN c#
http://www.daliancity.com.cn/job/index.php DLZX
http://www.cjsdu.com/ DuiRiLunTan
http://www.mutouyu.com/translation/ 鏈ㄩ牠欖氱炕璦?/p>
http://localhost:8080/solves4/pages/CM/AAA/CMAAA001R.jsp
http://www2.tianya.cn/new/techforum/Content.asp?idWriter=3915484&Key=677920263&idItem=81&idArticle=573828
hua xian chuang guan
http://www.4399.net/flash/4362_4.htm?1024
pao tai TD
http://www.excite.co.jp/world/chinese/
onlineTranslate
http://www.4399.net/flash/457_1.htm?800
qiJi
http://www.javaeye.com/
http://www.andykhan.com/jexcelapi/
JXL(JAVA Excel API)
http://www.uml.org.cn/sjms/200703274.asp
璦▓銉€兗銉?/p>
http://www.okajax.com/
Ajax 涓浗
http://www.nicenic.com/domain/
鍩熷悕
鍩熷悕鏈闀跨殑緗戠珯
http://www.llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch.co.uk/
http://www.111111111111111111111111111111111111111111111111111111111111.com/
http://3.141592653589793238462643383279502884197169399375105820974944592.com/
http://www.thelongestdomainnameintheworldandthensomeandthensomemoreandmore.com/
鍑犱釜涓嶉敊鐨凧AVA瀛︿範緗戠珯
http://www.csdn.net(紺懼尯銆佹枃妗c乥olg銆佺煡璇嗗簱)
http://www.hibernate.org.cn
http://www.tkk7.com
http://www.jdon.com
http://www.javafan.net
http://www.open-open.com
http://dev2dev.bea.com.cn/
http://www.javaresearch.org/
http://www.codechina.net/resource/
http://gceclub.sun.com.cn
http://www.javaeye.com
http://WWW.chinaitlab.com 涓浗IT瑭﹂〒瀹?/p>
鎮(zhèn)ㄧ殑Blog鍦板潃鏄?http://www.tkk7.com/lyl3333489/