锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
]]>
1.鍒嗘瀽涓氬姟,浠庝笟鍔℃祦鍜屼笟鍔¤鍒欎腑褰掔撼鍑洪鍩熷璞?榪欎簺瀵硅薄涓鑸斁鍦╯rc/com/yourname/domain涓?
2.鏍規嵁涓氬姟,鑰冭檻涓洪鍩熷璞℃彁渚涘畬鏁寸殑鏈嶅姟闇瑕侀偅浜涙湇鍔$被.榪欎簺瀵硅薄涓鑸斁鍦╯rc/com/yourname/service涓?
3.鎬濊冧粠杈撳叆寮濮?鍒拌緭鍑虹粨鏉?紼嬪簭瑕佽繍琛屾甯?鏈嶅姟綾婚渶瑕侀偅浜涘睘鎬у拰鏂規硶,榪欎簺鎴愬憳浠h〃浠涔堟剰涔夊叿鏈変粈涔堜環鍊?鏂規硶鐨勫弬鏁扮殑榪斿洖鍊煎垎鍒槸浠涔?
4.鎬濊冭璁╂湇鍔$被涓洪鍩熷璞$被鎻愪緵瀹屾暣鏅傜殑鏈嶅姟,棰嗗煙瀵硅薄綾婚渶瑕佸仛鎬庢牱鐨勮皟鏁?闇瑕佸綊綰抽偅浜涘叡鍚岀殑鍩虹被.榪欓噷鍙互緇樺嚭棰嗗煙綾誨拰鏈嶅姟綾葷殑闈欐佺被鍥懼崗鍔╂濊?
5.鑰冭檻榪橀渶瑕侀偅浜涘疄鐢ㄧ被鏉ュ府鍔╁疄鐜扮▼搴?榪欎簺瀵硅薄涓鑸斁鍦╯rc/com/yourname/util涓?
6.鍦ㄩ鍩熺被鍜屾湇鍔$被鐨勫熀紜涓婅璁℃寔涔呭眰,鎺у埗灞傚拰琛ㄧ幇灞?褰撳墠闃舵鏆傛椂涓嶄細鎺ヨЕ).
杞歡璁捐鐨勯氱敤鍘熷垯
Domain first:鍏堝綊綰崇▼搴忕殑棰嗗煙瀵硅薄,褰掔撼鍑烘潵鎵嶆竻妤氱▼搴忚鍋氫粈涔?
Service second:鍏舵褰掔撼紼嬪簭鐨勬湇鍔″璞?褰掔撼鍑烘潵鎵嶇煡閬撹鎬庝箞鍘誨仛.
鍓嶄袱姝ュ畬鎴愬悗鍙互璇磋璁″凡緇忓畬鎴愪簡澶у崐.
Persistence the third:鍐嶆鍐嶈冭檻鏁版嵁濡備綍鎸佷箙鍖栧埌鎸佷箙灞備腑,姣斿璇存暟鎹簱琛ㄧ粨鏋勭殑璁捐.
Presentation the last:鏈鍚庤冭檻琛ㄧ幇灞傜殑涓滆タ,姣斿璇寸晫闈㈡柟妗?
鐜頒唬杞歡璁捐鐨勬牳蹇?綾葷殑璁捐
浠庝笂涓ゆ鍙互鐪嬪嚭,杞歡璁捐鍏跺疄灝辨槸綾葷殑璁捐宸ヤ綔,綾昏璁$殑緇撴灉鐩存帴褰卞搷鐫杞歡鐨勬柟鏂歸潰闈?鎵璋撴寔涔呭眰璁捐,琛ㄧ幇灞傝璁¢兘鏄被璁捐鐨勬硾鍖栧拰娣卞寲,鎵浠ヨ綾昏璁$洿鎺ュ獎鍝嶇潃杞歡鐨勫叴琛版垚璐?
閭d箞鍏充簬綾昏璁$殑鍑嗗垯鍜岃瘎浠鋒爣鍑嗘槸浠涔堝憿?
綾昏璁$殑浜旀潯鍩烘湰鍑嗗垯
鍗曚竴鑱岃矗鍘熷垯(The single responsibility principle): 涓涓被鏈変笖鍙湁涓涓腑蹇冪洰鐨?瀹冧負涓涓腑蹇冪洰鐨勬墍璁捐,鍙兘鍥犱負涓績鐩殑鐩稿叧鍘熷洜鑰屾敼鍙?
寮鏀?灝侀棴鍘熷垯(The open-close principle):綾婚珮搴﹀唴鑱?鍜屽叾瀹冪被鐨勮﹀悎紼嬪害灝?搴旇鍙互鍦ㄤ笉鏀瑰彉綾葷殑鎯呭喌涓?鏀瑰彉綾繪墍鍦ㄧ殑鐜.
閲屾柉縐戝か鏇挎崲鍘熷垯(The Liskov substitution principle):媧劇敓綾葷殑琛屼負涓哄熀綾繪墍瑙勫畾鍜岄檺鍒?閬垮厤浣挎淳鐢熺被鐨勬柟娉曢潪娉曞寲鎴栬呴鍖栧畠浠?鍩虹被鐨勪嬌鐢ㄨ呬笉闇瑕佷簡瑙f淳鐢熺被灝辮兘姝g‘鐨勯氳繃鎺ュ彛浣跨敤瀹冧滑.
渚濊禆鍏崇郴鍊掔疆鍘熷垯(The dependecy inversion principle):鍩轟簬鎶借薄綾誨拰鎺ュ彛鑰屼笉鏄叿浣撶殑綾誨艦鎴愯璁℃瀯鏋?鍥犱負鎶借薄綾誨拰鎺ュ彛鐩稿鍏蜂綋綾昏岃█鏇翠笉瀹規槗琚敼鍔?
鎺ュ彛闅旂鍘熷垯(The interface segregation principle):緇欏璞$殑姣忎釜浣跨敤鑰呬竴涓崟鐙殑鎺ュ彛.鍏朵腑鍙寘鍚畠浠渶瑕佺殑鏂規硶,涓嶈璁捐涓涓寘鍚緢澶氭柟娉曠殑鎺ュ彛璁╀笉闇瑕佽繖浜涙帴鍙g殑綾誨幓瀹炵幇瀹冧滑.
綾葷殑璇勪環鏍囧噯-鎶借薄鐩稿叧
綾繪槸鍚︽湁涓涓腑蹇冪洰鐨?
綾葷殑鍛藉悕鏄惁鎭板綋,鍏跺悕瀛楁槸鍚﹁〃鐜頒簡鍏朵腑蹇冪洰鐨?
綾葷殑鎺ュ彛鏄惁灞曠幇浜嗕竴鑷寸殑鎶借薄.
綾葷殑鎺ュ彛鏄惁璁╀漢鏄庣櫧鐨勭煡閬撹濡備綍浣跨敤瀹?
綾葷殑鎺ュ彛鏄惁瓚沖鎶借薄,鏄綘鑳戒笉蹇呴【铏戝畠鏄浣曡繘琛屾湇鍔$殑.
綾繪彁渚涚殑鏈嶅姟鏄惁瓚沖瀹屾暣,鑳借鍏跺畠綾繪棤欏諱簡瑙e姩鐢ㄥ叾鍐呴儴緇撴瀯.
鏄惁宸茬粡鍘婚櫎鏃犲叧淇℃伅.
鏄惁鑰冭檻榪囨妸綾昏繘涓姝ュ垎瑙f垚緇勪歡綾?鏄惁宸茬粡灝藉彲鑳藉皢鍏跺垎瑙?
鍐嶄慨鏀圭被鏃舵槸鍚︾淮鎸佷簡鍏舵帴鍙g殑瀹屾暣鎬?
綾葷殑璇勪環鏍囧噯--灝佽鐩稿叧
鏄惁鎶婄被鎴愬憳鐨勫彲璁塊棶鎬ч檷鑷蟲渶灝?
鏄惁閬垮厤鏆撮湶綾諱腑鐨勬暟鎹垚鍛?
綾繪槸鍚﹀凡緇忓敖鍙兘鐨勫鍏跺畠綾婚殣钘忎簡瀹炵幇緇嗚妭.
綾繪槸鍚﹂伩鍏嶅鍏朵嬌鐢ㄨ?鍖呮嫭鍏舵淳鐢熺被濡備綍浣跨敤瀹冨仛浜嗗亣璁?
綾繪槸鍚︿笉渚濊禆鍏跺畠綾?瀹冩槸鏉捐﹀悎鐨勫悧?
鍏稿瀷鐨勮璁$殑鑷懗
鍍靛寲鎬?Rigidiry):綾諱箣闂磋﹀悎涓ラ噸,緋葷粺鍑犱箮寰堥毦鏀瑰彉,鏀瑰彉涓澶勫氨涓嶅緱涓嶆敼鍔ㄥ叾瀹冨湴鏂?鐢氳嚦寮曡搗鏃犱紤姝㈢殑榪為攣鍙嶅簲.
鏄撶鎬?Fragility):鏀瑰彉緋葷粺鐨勬煇涓儴鍒?浼氱牬鍧忚澶氬畬鍏ㄦ棤鍏崇殑閮ㄥ垎.榪欎竴鑸敱涓嶅繀瑕佺殑璇硶緇撴瀯寮曡搗,濡傝繃搴﹀鏉傜殑寰幆鍜屽垎鏀?
鍥哄寲鎬?Immobility):寰堥毦灝嗙郴緇熷垎瑙f垚鍙緵鍏跺畠緋葷粺浣跨敤鐨勭粍浠?緇嗗寲涓嶅浼氬紩璧瘋繖鏍風殑闂.
綺樼鎬?Viscosity):寮鍙戠幆澧冩繪槸鍜岃緭鍏ヨ緭鍑哄拰搴撶矘鍦ㄤ竴璧?姘歌繙璧頒笉鍑虹紪杈?>緙栬瘧->嫻嬭瘯榪欎竴鏃犱紤姝㈢殑寰幆,鍒嗗眰涓嶆竻鏅頒細寮曡搗榪欐牱鐨勯棶棰?
涓嶅繀瑕佺殑澶嶆潅鎬?Needless Complexity):寰堝鍏呮弧鐫鏅烘収鐨勪唬鐮佺粨鏋勭洰鍓嶈繕涓嶉渶瑕?浣嗘湁涓澶╁彲鑳戒細鎺掍笂鐢ㄥ満,鍠滄浜嬪厛鑰冭檻騫界伒闇姹傜殑紼嬪簭鍛樼粡甯哥粰浠g爜甯︽潵榪欐牱鐨勫紓鍛?
涓嶅繀瑕佺殑閲嶅(Needless Repetition): 緋葷粺鍏呮枼鐫閲嶅浠g爜,鐪嬩笂鍘昏薄鍙細VC澶ф硶(Ctrl+C,Ctrl+V)鐨勭▼搴忓憳鍐欑殑,鎳掓儼涓嶆濊冩槸閫犳垚榪欎釜闂鐨勬牴婧?
涓嶉忔槑鎬?Opacity):浠g爜涓嶈兘浣撶幇鍒涘緩浜虹殑鎰忓浘.
浣曡皳鑹ソ鐨勮璁?/strong>
璁捐鑹ソ鐨勭郴緇熷簲璇ュ鏄撶悊瑙?瀹規槗鏀瑰彉,瀹規槗閲嶇敤.瀹冨疄鐜拌搗鏉ユ病鏈変換浣曠壒孌婄殑鍥伴毦,綆鏄庢壖瑕佽岀粡嫻?瀹冧笉浼氭暎鍙戝嚭浠g爜鑷懗,鍏徃涔愪簬鐢熶駭榪欐牱鐨勭郴緇?瀹㈡埛涔愪簬浣跨敤榪欐牱鐨勭郴緇?緇存姢浜哄憳涔愪簬緇存姢榪欐牱鐨勭郴緇?
璁捐鑹ソ鐨勭幇浠h蔣浠剁壒寰?/strong>
鏈灝忕殑澶嶆潅搴?鏁翠釜緋葷粺鍙互鍒嗚В涓虹畝鍗曡屾槗浜庣悊瑙g殑鍚勪釜閮ㄥ垎.
鏄撲簬緇存姢:紼嬪簭鏈夎壇濂界殑鍙淮鎶ゆ?
鏉炬暎鑰﹀悎,閫氳繃搴旂敤綾繪帴鍙d腑鐨勫悎鐞嗘娊璞?灝佽鎬т互鍙婁俊鎭殣钘忕瓑鍘熷垯,璁捐鍑虹浉浜掑叧鑱斿敖鍙兘鏈灝戠殑綾?
閫傚簲鍙樺寲: 鑳藉湪涓嶆敼鍙樼郴緇熷熀鏈瀯鏋剁殑鍩虹涓?閫傚簲鏈潵鐨勫彉鍖?鏈夎壇濂界殑鎵╁睍鎬?紼嬪簭鍙墿灞?鍙噸鐢?
鏈夋槑鏅扮殑灞傛,姣忓眰鍚勫徃鍏惰亴,鏈夎壇濂藉垎宸?
楂樻墖鍏ヤ綆鎵囧嚭:緋葷粺寰堝ソ鐨勫埄鐢ㄤ簡杈冧綆灞傛涓婄殑宸ュ叿綾?閲嶅浠g爜寰堝皯鎴栨病鏈?
鏈夎壇濂界殑瑙勮寖:鏃犺澶氬皯浜哄弬涓庝簡欏圭洰,浠庝唬鐮佺湅鏉ョ姽濡傚嚭鑷竴浜轟箣鎵?
浣跨敤鏍囧噯鎶鏈?