锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鍏稿瀷鐨勪笁灞傜粨鏋?br>銆銆涓夊眰緇撴瀯浼拌澶у閮藉緢鐔熸?zhèn)変簡(jiǎn)銆傚氨鏄〃紺猴紙presentation錛夊眰, 棰嗗煙錛坉omain錛夊眰, 浠ュ強(qiáng)鍩虹鏋舵瀯錛坕nfrastructure錛夊眰銆?br>銆銆琛ㄧず灞傞昏緫涓昏澶勭悊鐢ㄦ埛鍜岃蔣浠剁殑浜や簰銆傜幇鍦ㄦ渶嫻佽鐨勮帿榪囦簬瑙嗙獥鍥懼艦鐣岄潰錛坵imp錛夊拰鍩轟簬html鐨勭晫闈簡(jiǎn)銆傝〃紺哄眰鐨勪富瑕佽亴璐e氨鏄負(fù)鐢ㄦ埛鎻愪緵淇℃伅錛屼互鍙?qiáng)鎶婄敤鎴风殑鎸囦护缈昏瘧銆備紶閫佺粰涓氬姟灞傚拰鍩虹鏋舵瀯灞傘?鍩虹鏋舵瀯灞傞昏緫鍖呮嫭澶勭悊鍜屽叾浠栫郴緇熺殑閫氫俊錛屼唬琛ㄧ郴緇熸墽琛屼換鍔°備緥濡傛暟鎹簱緋葷粺浜や簰錛屽拰鍏朵粬搴旂敤緋葷粺鐨勪氦浜掔瓑銆傚ぇ澶氭暟鐨勪俊鎭郴緇燂紝榪欎釜灞傜殑鏈澶х殑閫昏緫灝辨槸瀛樺偍鎸佷箙鏁版嵁銆?br>銆銆榪樻湁涓涓氨鏄鍩熷眰閫昏緫錛屾湁鏃朵篃琚彨鍋氫笟鍔¢昏緫銆傚畠鍖呮嫭杈撳叆鍜屽瓨鍌ㄦ暟鎹殑璁$畻銆傞獙璇佽〃紺哄眰鏉ョ殑鏁版嵁錛屾牴鎹〃紺哄眰鐨勬寚浠ゆ寚媧句竴涓熀紜鏋舵瀯灞傞昏緫銆?br>銆銆棰嗗煙閫昏緫涓紝浜轟滑鎬繪槸鎼炰笉娓呮浠涔堜簨棰嗗煙閫昏緫錛屼粈涔堟槸鍏跺畠閫昏緫銆備緥濡傦紝涓涓攢鍞郴緇熶腑鏈夎繖鏍蜂竴涓昏緫錛氬鏋滄湰鏈堥攢鍞噺姣斾笂涓湀澧為暱10錛咃紝灝辮鐢ㄧ孩鑹叉爣璁般傝瀹炵幇榪欎釜鍔熻兘錛屼綘鍙兘浼?xì)鎶婇昏緫鏀懼湪琛ㄧず灞備腑錛屾瘮杈冧袱涓湀鐨勬暟瀛楋紝濡傛灉瓚呭嚭10錛咃紝灝辨爣璁頒負(fù)綰㈣壊銆?br>銆銆榪欐牱鍋氾紝浣犲氨鎶婇鍩熼昏緫鏀懼埌浜?jiǎn)琛ńC哄眰涓簡(jiǎn)銆傝鍒嗙榪欎袱涓眰錛屼綘搴旇鐜板湪棰嗗煙灞備腑鎻愪緵涓涓柟娉曪紝鐢ㄦ潵姣旇緝閿鍞暟瀛楃殑澧為暱銆傝繖涓柟娉曟瘮杈冧袱涓湀鐨勬暟瀛楋紝騫惰繑鍥瀊oolean綾誨瀷銆傝〃紺哄眰鍒欑畝鍗曠殑璋冪敤璇ユ柟娉曪紝濡傛灉榪斿洖true錛屽垯鏍囪涓虹孩鑹層?
鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺?/p>
| 瀹㈡埛绔眰 | 鐢ㄦ埛浜や簰錛孶I瀹炵幇
| Browser,WirelessDevice,WebService | Http, Soap 鍗忚(SOP浣撶郴)
鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺?
鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺?
| 琛ㄧ幇灞?nbsp; | 闆嗕腑鐧誨綍錛屼細(xì)璇濈鐞?
| Struts,Jsf,Webwork,Tapstry, Velocity | 鍐呭鍒涘緩錛屾牸寮忥紝浼犻?
鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺?
鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺?
| 涓氬姟鏈嶅姟灞?nbsp; | 涓氬姟閫昏緫,浜嬪姟,鏁版嵁,鏈嶅姟
| SessionEJB錛孲pring錛孞doframework) | SessionEjb錛孭OJO Service
鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺?
鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺?
| 闆嗕腑灞?nbsp; | 璧勬簮閫傞厤鍣紝閬楃暀/澶栭儴緋葷粺
|Jms,Jdbc,Connnector,External Service | 瑙勫垯寮曟搸錛屽伐浣滄祦
鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺?
(鎸佷箙鍖朎ntityBean,Hibernate,iBatis,Jdo,Dao,TopLink etc.)
鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺?
| 璧勬簮灞?nbsp; | 璧勬簮錛屾暟鎹簱錛屽閮ㄦ湇鍔?
| DataBase,Resource,External Service | (澶у瀷涓繪満錛孊2B闆嗕腑緋葷粺)
鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺?
鍘熸枃鎽樺綍濡備笅錛?
Part 1 灞?/b>
銆銆灞傦紙layer錛夎繖涓蹇靛湪璁$畻鏈洪鍩熸槸闈炲父浜?jiǎn)涓嶅緱鐨勪竴涓蹇點(diǎn)傝綆楁満鏈韓灝變綋鐜頒簡(jiǎn)涓縐嶅眰鐨勬蹇碉細(xì)緋葷粺璋冪敤灞傘佽澶囬┍鍔ㄥ眰銆佹搷浣滅郴緇熷眰銆丆PU鎸囦護(hù)闆嗐傛瘡涓眰閮借礋璐h嚜宸辯殑鑱岃矗銆傜綉緇滃悓鏍蜂篃鏄眰鐨勬蹇碉紝鏈钁楀悕鐨凮SI鐨勪竷灞傚崗璁?br>銆銆灞傚埌浜?jiǎn)枋Y浠墮鍩熶篃涓鏍峰ソ鐢ㄣ備負(fù)浠涔堝憿錛熸垜浠湅鐪嬩嬌鐢ㄥ眰鎶鏈湁浠涔堝ソ澶勶細(xì)
銆銆鈼?浣犱嬌鐢ㄥ眰錛屼絾鏄笉闇瑕佸幓浜?jiǎn)瑙e眰鐨勫疄鐜熬l嗚妭銆?br>銆銆鈼?鍙互浣跨敤鍙︿竴縐嶆妧鏈潵鏀瑰彉鍩虹鐨勫眰錛岃屼笉浼?xì)濯?jiǎng)鍝嶄笂闈㈢殑灞傜殑搴旂敤銆?br>銆銆鈼?鍙互鍑忓皯涓嶅悓灞備箣闂寸殑渚濊禆銆?br>銆銆鈼?瀹規(guī)槗鍒跺畾鍑哄眰鏍囧噯銆?br>銆銆鈼?搴曚笅鐨勫眰鍙互鐢ㄦ潵寤虹珛欏朵笂鐨勫眰鐨勫欏規(guī)湇鍔°?褰撶劧錛屽眰涔熸湁寮辯偣錛?br>銆銆鈼?灞備笉鍙兘灝佽鎵鏈夌殑鍔熻兘錛屼竴鏃︽湁鍔熻兘鍙樺姩錛屽娍蹇呰娉㈠強(qiáng)鎵鏈夌殑灞傘?br>銆銆鈼?鏁堢巼闄嶄綆銆?br>銆銆褰撶劧錛屽眰鏈闅劇殑涓涓棶棰樿繕鏄悇涓眰閮芥湁浜涗粈涔堬紝浠ュ強(qiáng)瑕佹壙鎷呬綍縐嶈矗浠匯?br>鍏稿瀷鐨勪笁灞傜粨鏋?br>銆銆涓夊眰緇撴瀯浼拌澶у閮藉緢鐔熸?zhèn)変簡(jiǎn)銆傚氨鏄〃紺猴紙presentation錛夊眰, 棰嗗煙錛坉omain錛夊眰, 浠ュ強(qiáng)鍩虹鏋舵瀯錛坕nfrastructure錛夊眰銆?br>銆銆琛ㄧず灞傞昏緫涓昏澶勭悊鐢ㄦ埛鍜岃蔣浠剁殑浜や簰銆傜幇鍦ㄦ渶嫻佽鐨勮帿榪囦簬瑙嗙獥鍥懼艦鐣岄潰錛坵imp錛夊拰鍩轟簬html鐨勭晫闈簡(jiǎn)銆傝〃紺哄眰鐨勪富瑕佽亴璐e氨鏄負(fù)鐢ㄦ埛鎻愪緵淇℃伅錛屼互鍙?qiáng)鎶婄敤鎴风殑鎸囦护缈昏瘧銆備紶閫佺粰涓氬姟灞傚拰鍩虹鏋舵瀯灞傘?鍩虹鏋舵瀯灞傞昏緫鍖呮嫭澶勭悊鍜屽叾浠栫郴緇熺殑閫氫俊錛屼唬琛ㄧ郴緇熸墽琛屼換鍔°備緥濡傛暟鎹簱緋葷粺浜や簰錛屽拰鍏朵粬搴旂敤緋葷粺鐨勪氦浜掔瓑銆傚ぇ澶氭暟鐨勪俊鎭郴緇燂紝榪欎釜灞傜殑鏈澶х殑閫昏緫灝辨槸瀛樺偍鎸佷箙鏁版嵁銆?br>銆銆榪樻湁涓涓氨鏄鍩熷眰閫昏緫錛屾湁鏃朵篃琚彨鍋氫笟鍔¢昏緫銆傚畠鍖呮嫭杈撳叆鍜屽瓨鍌ㄦ暟鎹殑璁$畻銆傞獙璇佽〃紺哄眰鏉ョ殑鏁版嵁錛屾牴鎹〃紺哄眰鐨勬寚浠ゆ寚媧句竴涓熀紜鏋舵瀯灞傞昏緫銆?br>銆銆棰嗗煙閫昏緫涓紝浜轟滑鎬繪槸鎼炰笉娓呮浠涔堜簨棰嗗煙閫昏緫錛屼粈涔堟槸鍏跺畠閫昏緫銆備緥濡傦紝涓涓攢鍞郴緇熶腑鏈夎繖鏍蜂竴涓昏緫錛氬鏋滄湰鏈堥攢鍞噺姣斾笂涓湀澧為暱10錛咃紝灝辮鐢ㄧ孩鑹叉爣璁般傝瀹炵幇榪欎釜鍔熻兘錛屼綘鍙兘浼?xì)鎶婇昏緫鏀懼湪琛ㄧず灞備腑錛屾瘮杈冧袱涓湀鐨勬暟瀛楋紝濡傛灉瓚呭嚭10錛咃紝灝辨爣璁頒負(fù)綰㈣壊銆?br>銆銆榪欐牱鍋氾紝浣犲氨鎶婇鍩熼昏緫鏀懼埌浜?jiǎn)琛ńC哄眰涓簡(jiǎn)銆傝鍒嗙榪欎袱涓眰錛屼綘搴旇鐜板湪棰嗗煙灞備腑鎻愪緵涓涓柟娉曪紝鐢ㄦ潵姣旇緝閿鍞暟瀛楃殑澧為暱銆傝繖涓柟娉曟瘮杈冧袱涓湀鐨勬暟瀛楋紝騫惰繑鍥瀊oolean綾誨瀷銆傝〃紺哄眰鍒欑畝鍗曠殑璋冪敤璇ユ柟娉曪紝濡傛灉榪斿洖true錛屽垯鏍囪涓虹孩鑹層?br>渚嬪瓙
銆銆灞傛妧鏈笉瀛樺湪璇存案鎭掔殑鎶宸с傚浣曚嬌鐢ㄩ兘瑕佺湅鍏蜂綋鐨勬儏鍐墊墠鑳藉鍐沖畾錛屼笅闈㈡垜灝卞垪鍑轟簡(jiǎn)涓変釜渚嬪瓙錛?br>銆銆渚嬪瓙1錛氫竴涓數(shù)瀛愬晢鍔$郴緇熴傝姹傝兘澶熷悓鏃跺鐞嗗ぇ閲忕敤鎴風(fēng)殑璇鋒眰錛岀敤鎴風(fēng)殑鑼冨洿閬嶅強(qiáng)鍏ㄧ悆錛岃屼笖鏁板瓧榪樺湪涓嶆柇澧為暱銆備絾鏄鍩熼昏緫寰堢畝鍗曪紝鏃犻潪鏄鍗曠殑澶勭悊錛屼互 鍙?qiáng)鍜屽簱瀛樉p葷粺鐨勮繛鎺ラ儴鍒嗐傝繖灝辮姹傛垜浠?銆佽〃紺哄眰瑕佸弸濂斤紝鑳藉閫傚簲鏈騫挎硾鐨勭敤鎴鳳紝鍥犳閲囩敤html鎶鏈紱2銆佹敮鎸佸垎甯冨紡鐨勫鐞嗭紝浠ヨ儨浠誨悓鏃跺嚑鍗冪殑璁塊棶錛?3銆佽冭檻鏈潵鐨勫崌綰с?br>銆銆渚嬪瓙2錛氫竴涓鍊熺郴緇熴傜郴緇熺殑鐢ㄦ埛灝戠殑澶氾紝浣嗘槸棰嗗煙閫昏緫寰堝鏉傘傝繖灝辮姹傛垜浠埗浣滀竴涓鍩熼昏緫闈炲父澶嶆潅鐨勭郴緇燂紝鍙﹀錛岃繕瑕佺粰浠栦滑鐨勭敤鎴鋒彁渚涗竴涓柟渚跨殑杈撳叆鐣岄潰銆傝繖鏍鳳紝wimp鏄竴涓笉閿欑殑閫夋嫨銆?br>銆銆渚嬪瓙3錛氱畝鍗曠殑緋葷粺銆傞潪甯哥畝鍗曪紝鐢ㄦ埛灝戙侀昏緫灝戙備絾鏄篃涓嶆槸娌℃湁闂錛岀畝鍗曟剰鍛崇潃瑕佸揩閫熶氦浠橈紝騫朵笖榪樿鍏呭垎鑰冭檻鏃ュ悗鐨勫崌綰с傚洜涓洪渶姹傚湪涓嶆柇鐨勫鍔犱箣涓?br>浣曟椂鍒嗗眰
銆銆榪欐牱鐨勪笁涓緥瀛愶紝灝辮姹傛垜浠笉鑳藉涓姒傝岃鐨勮В鍐抽棶棰橈紝鑰屾槸搴旇閽堝闂鐨勫叿浣撴儏鍐靛埗瀹氬叿浣撶殑瑙e喅鏂規(guī)硶銆傝繖涓変釜渚嬪瓙姣旇緝鍏稿瀷銆?br>銆銆絎簩涓緥瀛愪腑錛屽彲鑳介渶瑕佷弗鏍肩殑鍒嗘垚涓変釜灞傛錛岃屼笖鍙兘榪樿鍔犱笂鍙﹀鐨勪腑浠嬶紙mediating錛夊眰銆備緥3鍒欎笉闇瑕侊紝濡傛灉浣犺鍋氱殑浠呮槸鏌ョ湅鏁版嵁錛岄偅浠呴渶瑕佸嚑涓猻erver欏甸潰鏉ユ斁緗墍鏈夌殑閫昏緫灝卞彲浠ヤ簡(jiǎn)銆?br>銆銆鎴戜竴鑸細(xì)鎶婅〃紺哄眰鍜岄鍩熷眰/鍩虹鏋舵瀯灞傚垎寮銆傞櫎闈為鍩熷眰/鍩虹鏋舵瀯灞傞潪甯哥殑綆鍗曪紝鑰屾垜鍙堝彲浠ヤ嬌鐢ㄥ伐鍏鋒潵杞繪槗鐨勭粦瀹氳繖浜涘眰銆傝繖縐嶄袱灞傛灦鏋勭殑鏈濂界殑渚嬪瓙灝?鏄湪VB銆丳B鐨勭幆澧冧腑錛屽緢瀹規(guī)槗灝卞彲浠ユ瀯寤哄嚭涓涓熀浜嶴QL鏁版嵁搴撶殑windows鐣岄潰鐨勭郴緇熴傝繖鏍風(fēng)殑琛ㄧず灞傚拰鍩虹鏋舵瀯灞傞潪甯哥殑涓鑷達(dá)紝浣嗘槸涓鏃﹂獙璇佸拰璁$畻 鍙樺緱澶嶆潅璧鋒潵錛岃繖縐嶆柟寮忓氨瀛樺湪鍏堝ぉ緙洪櫡浜?jiǎn)銆?br>銆銆寰堝鏃跺欙紝棰嗗煙灞傚拰鍩虹鏋舵瀯灞傜湅璧鋒潵闈炲父綾諱技錛岃繖鏃跺欙紝鍏跺疄鏄彲浠ユ妸瀹冧滑鏀懼湪涓璧風(fēng)殑銆傚彲鏄紝褰撻鍩熷眰鐨勪笟鍔¢昏緫鍜屽熀紜鏋舵瀯灞傜殑緇勭粐鏂瑰紡寮濮嬩笉鍚岀殑鏃跺欙紝浣犲氨闇瑕佸垎寮浜岃呫?br>鏇村鐨勫眰妯″紡
銆銆涓夊眰鐨勬灦鏋勬槸鏈涓洪氱敤鐨勶紝灝ゅ叾鏄IS緋葷粺銆傚叾瀹冪殑鏋舵瀯涔熸湁錛屼絾鏄茍涓嶉傜敤浜庝換浣曟儏鍐點(diǎn)?br>銆銆絎竴縐嶆槸Brown model [Brown et al]銆傚畠鏈変簲涓眰錛氳〃紺哄眰錛圥resentation錛夛紝鎺у埗/涓粙灞傦紙Controller/Mediator錛夛紝棰嗗煙灞傦紙Domain錛? 鏁版嵁鏄犲皠灞傦紙Data Mapping錛? 鍜屾暟鎹簮灞傦紙Data Source錛夈傚畠鍏跺疄灝辨槸鍦ㄤ笁灞傛灦鏋勭澧炲姞浜?jiǎn)涓や釜涓棿灞傘傛帶鍒?涓粙灞備綅浜庤〃紺哄眰鍜岄鍩熷眰涔嬮棿錛屾暟鎹槧灝勫眰浣嶄簬棰嗗煙灞傚拰鍩虹鏋舵瀯灞備箣闂淬?br>銆銆琛ㄧず灞傚拰棰嗗煙灞傜殑涓粙灞傦紝鎴戜滑閫氬父縐頒箣涓鴻〃紺?棰嗗煙涓粙灞傦紝鏄竴涓父鐢ㄧ殑鍒嗗眰鏂規(guī)硶錛岄氬父閽堝涓浜涢潪鍙鐨勬帶浠躲備緥濡備負(fù)鐗瑰畾鐨勮〃紺哄眰緇勭粐淇℃伅鏍煎紡錛屽湪涓?鍚岀殑紿楀彛闂村鑸紝澶勭悊浜ゆ槗杈圭晫錛屾彁渚汼erver鐨刦acade鎺ュ彛錛堝叿浣撳疄鐜板師鐞嗚璁捐妯″紡錛夈傛渶澶х殑鍗遍櫓灝辨槸錛屼竴浜涢鍩熼昏緫琚斁鍒拌繖涓眰閲岋紝褰卞搷鍒板叾 瀹冪殑琛ㄧず灞傘?br>銆銆鎴戝父甯稿彂鐜版妸琛屼負(fù)鍒嗛厤緇欒〃紺哄眰鏄湁濂藉鐨勩傝繖鍙互綆鍖栭棶棰樸備絾琛ㄧず灞傛ā鍨嬩細(xì)姣旇緝澶嶆潅錛屾墍浠ワ紝鎶婅繖浜涜涓烘斁鍒伴潪鍙鍖栫殑瀵硅薄涓紝騫舵彁鍙栧嚭涓涓〃紺?棰嗗煙涓粙灞傝繕鏄煎緱鐨勩?br>銆銆Brown ISA
銆銆琛ㄧず灞?琛ㄧず灞?br>銆銆鎺у埗/涓粙灞?琛ㄧず-棰嗗煙涓粙灞?br>銆銆棰嗗煙灞?棰嗗煙灞?br>銆銆鏁版嵁鏄犲皠灞?鏁版嵁搴撲氦浜掓ā寮忎腑鐨凞atabase Mapper
銆銆鏁版嵁婧愬眰 鍩虹鏋舵瀯灞?br>銆銆棰嗗煙灞傚拰鍩虹鏋舵瀯灞備箣闂寸殑涓粙灞傚睘浜庢湰涔︿腑鎻愬埌鐨凞atabase Mapper妯″紡錛屾槸涓夌棰嗗煙灞傚埌鏁版嵁榪炴帴鐨勫姙娉曚箣涓銆傚拰琛ㄧず-棰嗗煙涓粙灞備竴鐪鹼紝鏈夋椂鍊欐湁鐢紝浣嗕笉鏄墍鏈夋椂鍊欓兘鏈夌敤銆?br>銆銆榪樻湁涓涓ソ鐨勫垎灞傛灦鏋勬槸J2EE鐨勬灦鏋勶紝榪欐柟闈㈢殑璁ㄨ鍙互瑙併嶫2EE鏍稿績(jī)妯″紡銆忎竴涔︺備粬鐨勫垎灞傛槸瀹㈡埛灞傦紙Client錛夛紝琛ㄧず灞傦紙Presentation錛夛紝涓氬姟灞傦紙Business 錛夛紝鏁村悎灞傦紙Integration錛夛紝璧勬簮灞傦紙Resource錛夈傚樊鍒涓嬪浘錛?br>銆銆J2EE鏍稿績(jī) ISA
銆銆瀹㈡埛灞?榪愯鍦ㄥ鎴鋒満涓婄殑琛ㄧず灞?br>銆銆琛ㄧず灞?榪愯鍦ㄦ湇鍔″櫒涓婄殑琛ㄧず灞?br>銆銆涓氬姟灞?棰嗗煙灞?br>銆銆鏁村悎灞?鍩虹鏋舵瀯灞?br>銆銆璧勬簮灞?鍩虹鏋舵瀯灞傞氫俊鐨勫閮ㄦ暟鎹?br>銆銆寰蔣鐨凞NA鏋舵瀯瀹氫箟浜?jiǎn)涓変釜灞傚Q氳〃紺哄眰錛坧resentation錛夛紝涓氬姟灞傦紙business錛夛紝鍜屾暟鎹瓨鍌ㄥ眰錛坉ata access錛夛紝榪欏拰鎴戠殑鏋舵瀯鐩鎬技錛屼絾鏄湪鏁版嵁鐨勪紶閫掓柟寮忎笂榪樻湁寰堝ぇ鐨勪笉鍚屻傚湪寰蔣鐨凞NA涓紝鍚勫眰鐨勬搷浣滈兘鍩轟簬鏁版嵁瀛樺偍灞備紶鍑虹殑SQL鏌ヨ緇撴灉闆嗐傝繖鏍風(fēng)殑璇濓紝瀹為檯涓婃槸澧炲姞浜?jiǎn)琛ńC哄眰鍜屼笟鍔″眰鍚屾暟鎹瓨鍌ㄥ眰涔嬮棿鐨勮﹀悎搴︺?DNA鐨勮褰曢泦鍦ㄥ眰涔嬮棿鐨勫姩浣滅被浼間簬Data Transfer Object銆?
Part 2 緇勭粐棰嗗煙閫昏緫
銆銆瑕佺粍緇囧熀浜庡眰鐨勭郴緇燂紝棣栬鐨勬槸濡備綍緇勭粐棰嗗煙閫昏緫銆傞鍩熼昏緫鐨勭粍緇囨湁濂藉嚑縐嶆ā寮忋備絾鍏朵腑鏈閲嶈鐨勮帿榪囦簬涓ょ鏂規(guī)硶錛歍ransation Script鍜孌omain Model銆傞夊畾浜?jiǎn)鍏朵腑鐨勪竴縐嶏紝鍏跺畠鐨勯兘瀹規(guī)槗鍐沖畾銆備笉榪囷紝榪欎袱鑰呬箣闂村茍娌℃湁涓鏉℃槑鏄劇殑鍒嗙晫綰褲傛墍浠ュ浣曢夊彇涔熸槸闂ㄥぇ瀛﹂棶銆備竴鑸潵璇達(dá)紝鎴戜滑璁や負(fù)棰嗗煙閫昏緫姣旇緝澶嶆潅鐨勭郴緇熷彲浠ラ噰鐢―omain Model銆?br>銆銆Transation Script灝辨槸瀵硅〃紺哄眰鐢ㄦ埛杈撳叆鐨勫鐞嗙▼搴忋傚寘鎷獙璇佸拰璁$畻錛屽瓨鍌紝璋冪敤鍏跺畠緋葷粺鐨勬搷浣滐紝鎶婃暟鎹洖浼犵粰琛ㄧず灞傘傜敤鎴風(fēng)殑涓涓姩浣滆〃紺轟竴涓▼搴忥紝榪欎釜紼嬪簭鍙?浠ユ槸script錛屼篃鍙互鏄痶ransation錛屼篃鍙互鏄嚑涓瓙紼嬪簭銆傚湪渚嬪瓙1涓紝媯(gè)楠岋紝鍦ㄨ喘鐗╄濺涓鍔犱竴鏈功錛屾樉紺洪掗佺姸鎬侊紝閮藉彲浠ユ槸涓涓?Transation Script銆?br>銆銆Domain Model鏄寤虹珛瀵瑰簲棰嗗煙鍚嶈瘝鐨勬ā鍨嬶紝渚嬪渚?涓殑涔︺佽喘鐗╄濺絳夈傛楠屻佽綆楃瓑澶勭悊閮芥斁鍒伴鍩熸ā鍨嬩腑銆?br>銆銆Transation Script灞炰簬緇撴瀯鎬ф濈淮錛孌omain Model灞炰簬OO鎬濈淮銆侱omain Model姣旇緝闅句嬌鐢紝涓鏃︿範(fàn)鎯紝浣犺兘澶熺粍緇囨洿澶嶆潅鐨勯昏緫錛屼綘鐨勬濇兂浼?xì)鏇碠O銆傚埌鏃跺欙紝鍗充嬌鏄皬鐨勭郴緇燂紝浣犱篃浼?xì)鑷劧鐨勪娇鐢―omain Model浜?jiǎn)銆?br>銆銆浣嗗浣曟妷鎷╁憿錛熷鏋滈昏緫澶嶆潅錛岄偅鑲畾鐢―omain Model錛氬鏋滃彧闇瑕佸瓨鍙栨暟鎹簱錛岄偅Transation Script浼?xì)濂戒竴浜涖備絾鏄渶姹傛槸鍦ㄤ笉鏂繘鍖栫殑錛屼綘寰堥毦淇濊瘉浠ュ悗鐨勯渶姹傝繕?shù)細(xì)濡傛绠鍗曘傚鏋滀綘鐨勫洟闃熶笉鍠勪簬浣跨敤Domain Model錛岄偅浣犻渶瑕佹潈琛′竴涓嬫姇鍏ヤ駭鍑烘瘮銆傚彟澶栵紝鍗充嬌鏄疶ransation Script錛屼篃鍙互鍋氬埌鎶婇昏緫鍜屽熀紜鏋舵瀯鍒嗗紑錛屼綘鍙互浣跨敤Gateway銆?br>銆銆瀵逛緥2錛屾鏃犵枒闂浣跨敤Domain Model銆傚渚?灝遍渶瑕佹潈琛′簡(jiǎn)銆傝屽浜庝緥3錛屼綘寰堥毦璇村畠?yōu)畣鏉ヤ細(xì)涓嶄細(xì)鍍忎?閭f牱錛屼綘鐜板湪鍙互浣跨敤Transation Script錛屼絾鏈潵浣犲彲鑳借浣跨敤Domain Model銆傛墍浠ヨ錛屾灦鏋勭殑鍐崇瓥鏄嚦鍏崇揣瑕佺殑銆?br>銆銆闄や簡(jiǎn)榪欎袱縐嶆ā寮忥紝榪樻湁鍏跺畠涓焊鐨勬ā寮忋俇se Case Controller灝辨槸澶勪簬涓よ呬箣闂淬傚彧鏈夊拰鍗曚釜鐨勭敤渚嬬浉鍏崇殑涓氬姟閫昏緫鎵嶆斁鍒板璞′腑銆傛墍浠ュぇ鑷翠笂浠栦滑榪樻槸鍦ㄤ嬌鐢═ransation Script錛岃孌omain Model鍙槸Database Gateway鐨勪竴緇勯泦鍚堣屽凡銆傛垜涓嶅お鐢ㄨ繖縐嶆ā寮忋?br>銆銆Table Module鏄彟涓涓腑搴告ā寮忋傚緢澶氱殑GUI鐜渚濇墭?shù)簬SQL鏌ヨ鐨勮繑鍥炵粨鏋溿備綘鍙互寤虹珛鍐呭瓨?shù)腑鐨勫璞″Q屾潵鎶奊UI鍜屾暟鎹簱鍒嗗紑鏉ャ備負(fù)姣忎釜琛ㄥ啓涓涓ā鍧楋紝鍥犳姣忎竴琛岄兘闇瑕佸叧閿瓧鍙橀噺鏉ヨ瘑鍒瘡涓涓疄渚嬨?br>銆銆Table Module閫傜敤浜庡緢澶氱殑緇勪歡鏋勫緩浜庝竴涓氱敤鍏崇郴鍨嬫暟鎹簱涔嬩笂錛岃屼笖棰嗗煙閫昏緫涓嶅お澶嶆潅鐨勬儏鍐點(diǎn)侻icrosoft COM 鐜錛屼互鍙?qiáng)瀹冪殑甯DO.NET鐨?NET鐜閮介傚悎浣跨敤榪欑妯″紡銆傝屽浜嶫ava錛屽氨涓嶅お閫傜敤浜?jiǎn)銆?br>銆銆棰嗗煙閫昏緫鐨勪竴涓棶棰樻槸棰嗗煙瀵硅薄闈炲父鐨勮噧鑲褲傚洜涓哄璞$殑琛屼負(fù)澶浜?jiǎn)锛尵c諱篃灝卞お澶т簡(jiǎn)銆傚畠蹇呴』鏄竴涓秴闆嗐傝繖灝辮鑰冭檻鍝簺琛屼負(fù)鏄氱敤鐨勶紝鍝簺涓嶆槸錛屽彲浠ョ敱鍏跺畠鐨勭被鏉ュ鐞嗭紝鍙兘鏄疷se Case Controller錛屼篃鍙兘鏄〃紺哄眰銆?br>銆銆榪樻湁涓涓棶棰橈紝澶嶅埗銆備粬浼?xì)瀵艰嚧澶嶆潅鍜屼笉涓鑷淬傝繖姣旇噧鑲跨殑鍗卞鏇村ぇ銆傛墍浠ワ紝瀹佸彲鑷冭偪錛屼篃涓嶈澶嶅埗銆傜瓑鍒拌噧鑲夸負(fù)瀹蟲(chóng)椂鍐嶅鐞嗗畠鍚с?br>閫夋嫨涓涓湴鏂硅繍琛岄鍩熼昏緫
銆銆鎴戜滑鐨勭簿鍔涢泦涓湪閫昏緫灞備笂銆傞鍩熼昏緫瑕佷箞榪愯鍦–lient涓婏紝瑕佷箞榪愯鍦⊿erver涓娿?br>銆銆姣旇緝綆鍗曠殑鍋氭硶鏄叏閮ㄩ泦涓湪Server涓娿傝繖鏍蜂綘闇瑕佷嬌鐢╤tml鐨勫墠绔互鍙?qiáng)web server銆傝繖鏍峰仛鐨勫ソ澶勬槸鍗囩駭鍜岀淮鎶ら兘闈炲父鐨勭畝鍗曪紝浣犱篃涓嶇敤鑰冭檻妗岄潰騫沖彴鍜孲erver鐨勫悓姝ラ棶棰橈紝涔熶笉鐢ㄨ冭檻妗岄潰騫沖彴鐨勫叾瀹冭蔣浠剁殑鍏煎闂銆?br>銆銆榪愯鍦–lient閫傚悎浜庤姹傚揩閫熷弽搴斿拰娌℃湁鑱旂綉鐨勬儏鍐點(diǎn)傚湪Server绔殑閫昏緫錛岀敤鎴風(fēng)殑涓涓啀灝忕殑璇鋒眰錛屼篃闇瑕佷俊鎭粠Client鍒癝erver緇曚竴鍦堛傚弽搴旂殑閫熷害蹇呯劧鎱€傚啀璇達(dá)紝緗戠粶鐨勮鐩栫▼搴︿篃涓嶆槸璇磋揪鍒頒簡(jiǎn)100錛呫?br>瀵逛簬鍚勪釜灞傛潵璇達(dá)紝鍙堟槸鎬庝箞鏍風(fēng)殑鍛紵
銆銆鍩虹鏋舵瀯灞傦細(xì)涓鑸兘鏄湪Server鍟︼紝涓嶈繃鏈夋椂鍊欎篃浼?xì)鎶婃暟鎹鍒跺埌鍚堥傜殑楂樻ц兘妗岄潰鏈猴紝浣嗚繖鏄氨瑕佽冭檻鍚屾鐨勯棶棰樹(shù)簡(jiǎn)銆?br>銆銆琛ㄧず灞傚湪浣曞榪愯鍙栧喅浜庣敤鎴風(fēng)晫闈㈢殑璁捐銆備竴涓猈indows鐣岄潰鍙兘鍦–lient榪愯銆傝屼竴涓猈eb鐣岄潰灝辨槸鍦⊿erver榪愯銆備篃鏈夌壒鍒殑渚嬪瓙錛屽湪妗岄潰鏈轟笂榪愯web server鐨勶紝渚嬪X Server銆備絾榪欑鎯呭喌灝戠殑澶氥?br>銆銆鍦ㄤ緥1涓紝娌℃湁鏇村鐨勯夋嫨浜?jiǎn)锛屽彧鑳介夊湪Server绔傚洜姝や綘鐨勬瘡涓涓猙it閮戒細(xì)緇曚竴涓ぇ鍦堝瓙銆備負(fù)浜?jiǎn)鎻愰珮鏁堢巼锛尀閲忎娇鐢ㄤ竴浜涚函html鑴氭湰銆?br>銆銆浜轟滑閫夌敤Windows鐣岄潰鐨勫師鍥犱富瑕佸氨鏄渶瑕佹墽琛屼竴浜涢潪甯稿鏉傜殑浠誨姟錛岄渶瑕佷竴涓悎閫傜殑搴旂敤紼嬪簭錛岃寃eb GUI鍒欐棤娉曡儨浠匯傝繖灝辨槸渚?鐨勫仛娉曘備笉榪囷紝浜轟滑搴旇浼?xì)娓愭笎閫傚簲web GUI錛岃寃eb GUI鐨勫姛鑳戒篃浼?xì)瓒婃潵瓒婂己澶с?br>銆銆鍓╀笅鐨勬槸棰嗗煙閫昏緫銆備綘鍙互鍏ㄩ儴鏀懼湪Server錛屼篃鍙互鍏ㄩ儴鏀懼湪Client錛屾垨鏄袱杈歸兘鏀俱?br>銆銆濡傛灉鏄湪Client绔紝浣犲彲浠ヨ冭檻鍏ㄩ儴閫昏緫閮芥斁鍦–lient绔紝榪欐牱鑷沖皯淇濊瘉鎵鏈夌殑閫昏緫閮藉湪涓涓湴鏂廣傝屾妸web server縐昏嚦Client錛屾槸鍙互瑙e喅娌℃湁鑱旂綉鐨勯棶棰橈紝浣嗗鍙嶅簲鏃墮棿涓嶄細(xì)鏈夊澶х殑甯姪銆備綘榪樻槸鍙互鎶婇昏緫鍜岃〃紺哄眰鍒嗙寮鏉ャ傚綋鐒?dòng)灱屼綘闇瑕侀澶栫殑鍗囩駭鍜岀淮鎶ょ殑宸ヤ綔銆?br>銆銆鍦–lient鍜孲erver绔兘鍏鋒湁閫昏緫騫朵笉鏄竴涓ソ鐨勫鐞嗗姙娉曘備絾鏄浜庨偅浜涗粎鏈変竴浜涢鍩熼昏緫鐨勬儏鍐墊槸閫傜敤鐨勩傛湁涓涓皬紿嶉棬錛屾妸閭d簺鍜岀郴緇熺殑鍏跺畠閮ㄥ垎娌℃湁鑱旂郴鐨勯昏緫灝佽璧鋒潵銆?棰嗗煙閫昏緫鐨勬帴鍙?br>銆銆浣犵殑Server涓婃湁涓浜涢鍩熼昏緫錛岃鍜孋lient閫氫俊錛屼綘搴旇鏈変粈涔堟牱鐨勬帴鍙e憿錛熻涔堟槸涓涓猦ttp鎺ュ彛錛岃涔堟槸涓涓狾O鎺ュ彛銆?br>銆銆http鎺ュ彛閫傜敤浜巜eb browser錛屽氨鏄浣犺閫夋嫨涓涓猦tml鐨勮〃紺哄眰銆傛渶榪戠殑鏂版妧鏈氨鏄痺eb service錛岄氳繃鍩轟簬http銆佺壒鍒槸XML榪涜閫氫俊銆俋ML鏈夊嚑涓ソ澶勶細(xì)閫氫俊閲忓ぇ錛岀粨鏋勫ソ錛屼粎闇涓嬈$殑鍥炶礬銆傝繖鏍瘋繙紼嬭皟鐢ㄧ殑鐨勫紑閿灝卞皬浜?jiǎn)銆傚悓鏃訛紝XML榪樻槸涓涓爣鍑嗭紝鏀寔騫沖彴寮傛瀯銆俋ML鍙堟槸鍩轟簬鏂囨湰鐨勶紝鑳藉閫氳繃闃茬伀澧欍?br>銆銆铏界劧XML鏈夐偅涔堝鐨勫ソ澶勶紝涓嶈繃涓涓狾O鐨勬帴鍙h繕鏄湁瀹冪殑浠峰肩殑銆俬htp鐨勬帴鍙d笉鏄庢樉錛屼笉瀹規(guī)槗鐪嬫竻妤氭暟鎹槸濡備綍澶勭悊鐨勩傝孫O鐨勬帴鍙g殑鏂規(guī)硶甯︽湁鍙橀噺鍜屽悕瀛楋紝瀹規(guī)槗鐪嬪嚭澶勭悊鐨勮繃紼嬨傚綋鐒?dòng)灱屽畠鏃犳硶閫氳繃闃茬伀澧欙紝浣嗗彲浠ユ彁渚涘畨鍏ㄥ拰浜嬪姟涔嬬被鐨勬帶鍒躲?br>銆銆鏈濂界殑榪樻槸鍙栦簩鑰呮墍闀褲侽O鎺ュ彛鍦ㄤ笅錛宧ttp鎺ュ彛鍦ㄤ笂銆備絾榪欐牱鍋氬氨浼?xì)鋴慑緱瀹炵幇鏈哄垑櫇炲父鐨勫鏉傘?br>Part 3 緇勭粐web Server
銆銆寰堝浣跨敤html鏂瑰紡鐨勪漢錛屽茍涓嶈兘鐪熸鐞嗚В榪欑鏂瑰紡鐨勪紭鐐廣傛垜浠湁鍚勭鍚勬牱濂界敤鐨勫伐鍏鳳紝浣嗘槸鍗存悶鍒拌紼嬪簭闅句互緇存姢銆?br>銆銆鍦╳eb server涓婄粍緇囩▼搴忕殑鏂瑰紡澶ц嚧鍙互鍒嗕負(fù)涓ょ錛氳剼鏈拰server page銆?br>銆銆鑴氭湰鏂瑰紡灝辨槸涓涓▼搴忥紝鐢ㄥ嚱鏁板拰鏂規(guī)硶鏉ュ鐞唄ttp璋冪敤銆備緥濡侰GI鑴氭湰鍜宩ava servlet銆傚畠鍜屾櫘閫氱殑紼嬪簭騫舵病鏈変粈涔堜袱鏍楓傚畠浠巜eb欏甸潰涓婅幏寰梙tml string褰㈡佺殑鏁版嵁錛屾湁鏃跺欒繕瑕佸仛涓浜涜〃杈懼紡鍖歸厤錛岃繖姝f槸perl鑳藉鎴愪負(fù)CGI鑴氭湰鐨勫父鐢ㄨ璦鐨勫師鍥犮傝宩ava servelet鍒欐槸鎶婅繖縐嶅垎鏋愮暀緇欑▼搴忓憳錛屼絾瀹冨厑璁哥▼搴忓憳閫氳繃鍏抽敭瀛楁帴鍙f潵璁塊棶淇℃伅錛岃繖鏍峰氨浼?xì)灏戜竴浜涜〃杈懼紡鐨勫垽鏂傝繖縐嶆牸寮忕殑web server杈撳嚭鏄彟涓縐峢tml string錛岀О涓簉esponse錛屽彲浠ラ氳繃嫻佹暟鎹潵鎿嶄綔銆?br>銆銆緋熺硶鐨勬槸嫻佹暟鎹槸闈炲父楹葷儲(chǔ)鐨勶紝鍥犳灝卞鑷翠簡(jiǎn)server page鐨勪駭鐢燂紝渚嬪PHP錛孉SP錛孞SP銆?br>銆銆server page鐨勬柟寮忛傚悎鍥炲簲錛坮esponse錛夌殑澶勭悊姣旇緝綆鍗曠殑鎯呭喌銆備緥濡傗滄樉紺烘瓕鏇茬殑鏄庣粏鈥濓紝浣嗘槸浣犵殑鍐崇瓥鍙栧喅浜庤緭鍏ョ殑鏃跺欙紝灝變細(xì)姣旇緝鏉備貢銆備緥濡傗滈氫織鍜屾憞婊氱殑鏄劇ず鏍煎紡涓嶅悓鈥濄?br>銆銆鑴氭鎿呴暱浜庡鐞嗙敤鎴蜂氦浜掞紝server page鎿呴暱浜庡鐞嗘牸寮忓寲鍥炲簲淇℃伅銆傛墍浠ュ緢鑷劧鐨勫氨浼?xì)閲囩敤鑴氭湰澶勭悊璇锋眰鐨勪氦浜掑Q屼嬌鐢╯erver page澶勭悊鍥炲簲鐨勬牸寮忓寲銆傝繖鍏跺疄灝辨槸钁楀悕鐨凪VC錛圡odel View Controller錛夋ā寮忎腑鐨剉iew/controller鐨勫鐞嗐?br>銆銆搴旂敤Model View Controller妯″紡棣栬鐨勪竴鐐瑰氨鏄ā鍨嬭鍜寃eb鏈嶅姟瀹屽叏鍒嗙寮鏉ャ備嬌鐢═ransaction Script鎴朌omain Model妯″紡鏉ュ皝瑁呭鐞嗘祦紼嬨?br>銆銆鎺ヤ笅鏉ワ紝鎴戜滑灝辨妸鍓╀綑鐨勬ā寮忓綊鍏ヤ袱綾繪ā寮忎腑錛氬睘浜嶤ontroller鐨勬ā寮忥紝浠ュ強(qiáng)灞炰簬View鐨勬ā寮忋?br>View妯″紡
銆銆View榪欒竟鏈変笁縐嶆ā寮忥細(xì)Transform View錛孴emplate View鍜孴wo Step View銆俆ransform View鍜孴emplate View鐨勫鐞嗗彧鏈変竴姝ワ紝灝嗛鍩熸暟鎹漿鎹負(fù)html銆俆wo Step View瑕佺粡榪囦袱姝ョ殑澶勭悊錛岀涓姝ユ妸棰嗗煙鏁版嵁杞崲涓洪昏緫琛ㄧず褰㈠紡錛岀浜屾鎶婇昏緫琛ㄧず杞崲涓篽tml銆?br>銆銆涓ゆ澶勭悊鐨勫ソ澶勬槸鍙互灝嗛昏緫闆嗕腑浜庝竴澶勶紝濡傛灉鍙湁涓姝ワ紝鍙樺寲鍙戠敓鏃訛紝浣犲氨闇瑕佷慨鏀規(guī)瘡涓涓睆騫曘備絾榪欓渶瑕佷綘鏈変竴涓緢濂界殑閫昏緫灞忓箷緇撴瀯銆傚鏋滀竴涓獁eb搴旂敤鏈夊緢澶氱殑鍓嶇鐢ㄦ埛鏃訛紝涓ゆ澶勭悊灝辯壒鍒殑濂界敤銆備緥濡傝埅絀鴻紲ㄧ郴緇熴備嬌鐢ㄤ笉鍚岀殑絎簩姝ュ鐞嗭紝灝卞彲浠ヨ幏寰椾笉鍚岀殑閫昏緫灞忓箷銆?br>銆銆浣跨敤鍗曟鏂規(guī)硶鏈変袱涓彲閫夌殑妯″紡錛歍emplate View錛孴ransform View銆俆emplate View鍏舵椂灝辨槸鎶婁唬鐮佸祵鍏ュ埌html欏甸潰涓紝灝卞儚鐜板湪鐨剆erver page鎶鏈紝濡侫SP錛孭HP錛孞SP銆傝繖縐嶆ā寮忕伒媧伙紝寮哄ぇ錛屼絾鏄懼緱鏉備貢鏃犵珷銆傚鏋滀綘鑳藉鎶婇昏緫紼嬪簭閫昏緫鍦ㄩ〉闈㈢粨鏋勪箣澶栬繘琛屽緢濂界殑緇勭粐錛岃繖縐嶆ā寮忚繕鏄湁瀹冪殑浼樼偣鐨勩?br>銆銆Transform View浣跨敤緲昏瘧鏂瑰紡銆備緥濡俋SLT銆傚鏋滀綘鐨勯鍩熸暟鎹槸鐢╔ML澶勭悊鐨勶紝閭h繖縐嶆ā寮忓氨鐗瑰埆鐨勫ソ鐢ㄣ?br>Controller妯″紡
銆銆Controller鏈変袱縐嶆ā寮忋備竴鑸垜浠細(xì)鏍規(guī)嵁鍔ㄤ綔鏉ュ喅瀹氫竴欏規(guī)帶鍒躲傚姩浣滃彲鑳芥槸涓涓寜閽垨閾炬帴銆傛墍榪欑妯″紡灝辨槸Action Controller妯″紡銆?br>銆銆Front Controller鏇磋繘涓姝ワ紝瀹冩妸http璇鋒眰鐨勫鐞嗗拰澶勭悊閫昏緫鍒嗙寮鏉ャ備竴鑸槸鍙湁涓涓獁eb handle鏉ュ鐞嗘墍鏈夌殑璇鋒眰銆備綘鐨勬墍鏈夌殑http璇鋒眰鐨勫鐞嗛兘鐢變竴涓璞℃潵璐熻矗銆備綘鏀瑰彉鍔ㄤ綔緇撴瀯鐨勫獎(jiǎng)鍝嶅氨浼?xì)闄嶅埌鏈灝忋?/p>