JAVA鎺掑簭姹囨?鏀惰棌 package com.softeem.jbs.lesson4; import java.util.Random; /** * 鎺掑簭嫻嬭瘯綾?br /> * * 鎺掑簭綆楁硶鐨勫垎綾誨涓嬶細 * 1.鎻掑叆鎺掑簭錛堢洿鎺ユ彃鍏ユ帓搴忋佹姌鍗婃彃鍏ユ帓搴忋佸笇灝旀帓搴忥級錛?br /> * 2.浜ゆ崲鎺掑簭錛堝啋娉℃場鎺掑簭銆佸揩閫熸帓搴忥級錛?br /> * 3.閫夋嫨鎺掑簭錛堢洿鎺ラ夋嫨鎺掑簭銆佸爢鎺掑簭錛夛紱 * 4.褰掑茍鎺掑簭錛?br /> * 5.鍩烘暟鎺掑簭銆?br /> * * 鍏充簬鎺掑簭鏂規硶鐨勯夋嫨錛?br /> * (1)鑻杈冨皬(濡俷≤50)錛屽彲閲囩敤鐩存帴鎻掑叆鎴栫洿鎺ラ夋嫨鎺掑簭銆?br /> * 銆褰撹褰曡妯¤緝灝忔椂錛岀洿鎺ユ彃鍏ユ帓搴忚緝濂斤紱鍚﹀垯鍥犱負鐩存帴閫夋嫨縐誨姩鐨勮褰曟暟灝戜簬鐩存帴鎻掍漢錛屽簲閫夌洿鎺ラ夋嫨鎺掑簭涓哄疁銆?br /> * (2)鑻ユ枃浠跺垵濮嬬姸鎬佸熀鏈湁搴?鎸囨搴?錛屽垯搴旈夌敤鐩存帴鎻掍漢銆佸啋娉℃垨闅忔満鐨勫揩閫熸帓搴忎負瀹滐紱 * (3)鑻杈冨ぇ錛屽垯搴旈噰鐢ㄦ椂闂村鏉傚害涓篛(nlgn)鐨勬帓搴忔柟娉曪細蹇熸帓搴忋佸爢鎺掑簭鎴栧綊騫舵帓搴忋?br /> * */ public class SortTest { /** * 鍒濆鍖栨祴璇曟暟緇勭殑鏂規硶 * @return 涓涓垵濮嬪寲濂界殑鏁扮粍 */ public int[] createArray() { Random random = new Random(); int[] array = new int[10]; for (int i = 0; i < 10; i++) { array = random.nextInt(100) - random.nextInt(100);//鐢熸垚涓や釜闅忔満鏁扮浉鍑忥紝淇濊瘉鐢熸垚鐨勬暟涓湁璐熸暟 } System.out.println("==========鍘熷搴忓垪=========="); printArray(array); return array; } /** * 鎵撳嵃鏁扮粍涓殑鍏冪礌鍒版帶鍒跺彴 * @param source */ public void printArray(int[] data) { for (int i : data) { System.out.print(i + " "); } System.out.println(); } /** * 浜ゆ崲鏁扮粍涓寚瀹氱殑涓ゅ厓绱犵殑浣嶇疆 * @param data * @param x * @param y */ private void swap(int[] data, int x, int y) { int temp = data[x]; data[x] = data[y]; data[y] = temp; } /** * 鍐掓場鎺掑簭----浜ゆ崲鎺掑簭鐨勪竴縐?br /> * 鏂規硶錛氱浉閭諱袱鍏冪礌榪涜姣旇緝錛屽鏈夐渶瑕佸垯榪涜浜ゆ崲錛屾瘡瀹屾垚涓嬈″驚鐜氨灝嗘渶澶у厓绱犳帓鍦ㄦ渶鍚庯紙濡備粠灝忓埌澶ф帓搴忥級錛屼笅涓嬈″驚鐜槸灝嗗叾浠栫殑鏁拌繘琛岀被浼兼搷浣溿? * 鎬ц兘錛氭瘮杈冩鏁癘(n^2),n^2/2錛涗氦鎹㈡鏁癘(n^2),n^2/4 * * @param data 瑕佹帓搴忕殑鏁扮粍 * @param sortType 鎺掑簭綾誨瀷 * @return */ public void bubbleSort(int[] data, String sortType) { if (sortType.equals("asc")) { //姝f帓搴忥紝浠庡皬鎺掑埌澶?br /> //姣旇緝鐨勮疆鏁?br /> for (int i = 1; i < data.length; i++) { //灝嗙浉閭諱袱涓暟榪涜姣旇緝錛岃緝澶х殑鏁板線鍚庡啋娉?br /> for (int j = 0; j < data.length - i; j++) { if (data[j] > data[j + 1]) { //浜ゆ崲鐩擱偦涓や釜鏁?br /> swap(data, j, j + 1); } } } } else if (sortType.equals("desc")) { //鍊掓帓搴忥紝浠庡ぇ鎺掑埌灝?br /> //姣旇緝鐨勮疆鏁?br /> for (int i = 1; i < data.length; i++) { //灝嗙浉閭諱袱涓暟榪涜姣旇緝錛岃緝澶х殑鏁板線鍚庡啋娉?br /> for (int j = 0; j < data.length - i; j++) { if (data[j] < data[j + 1]) { //浜ゆ崲鐩擱偦涓や釜鏁?br /> swap(data, j, j + 1); } } } } else { System.out.println("鎮ㄨ緭鍏ョ殑鎺掑簭綾誨瀷閿欒錛?); } printArray(data);//杈撳嚭鍐掓場鎺掑簭鍚庣殑鏁扮粍鍊?br /> } /** * 鐩存帴閫夋嫨鎺掑簭娉?---閫夋嫨鎺掑簭鐨勪竴縐?br /> * 鏂規硶錛氭瘡涓瓚熶粠寰呮帓搴忕殑鏁版嵁鍏冪礌涓夊嚭鏈灝忥紙鎴栨渶澶э級鐨勪竴涓厓绱狅紝 欏哄簭鏀懼湪宸叉帓濂藉簭鐨勬暟鍒楃殑鏈鍚庯紝鐩村埌鍏ㄩ儴寰呮帓搴忕殑鏁版嵁鍏冪礌鎺掑畬銆?br /> * 鎬ц兘錛氭瘮杈冩鏁癘(n^2),n^2/2 * 浜ゆ崲嬈℃暟O(n),n * 浜ゆ崲嬈℃暟姣斿啋娉℃帓搴忓皯澶氫簡錛岀敱浜庝氦鎹㈡墍闇CPU鏃墮棿姣旀瘮杈冩墍闇鐨凜UP鏃墮棿澶氾紝鎵浠ラ夋嫨鎺掑簭姣斿啋娉℃帓搴忓揩銆?br /> * 浣嗘槸N姣旇緝澶ф椂錛屾瘮杈冩墍闇鐨凜PU鏃墮棿鍗犱富瑕佸湴浣嶏紝鎵浠ヨ繖鏃剁殑鎬ц兘鍜屽啋娉℃帓搴忓樊涓嶅お澶氾紝浣嗘鏃犵枒闂偗瀹氳蹇簺銆?br /> * * @param data 瑕佹帓搴忕殑鏁扮粍 * @param sortType 鎺掑簭綾誨瀷 * @return */ public void selectSort(int[] data, String sortType) { if (sortType.equals("asc")) { //姝f帓搴忥紝浠庡皬鎺掑埌澶?br /> int index; for (int i = 1; i < data.length; i++) { index = 0; for (int j = 1; j <= data.length - i; j++) { if (data[j] > data[index]) { index = j; } } //浜ゆ崲鍦ㄤ綅緗甦ata.length-i鍜宨ndex(鏈澶у?涓や釜鏁?br /> swap(data, data.length - i, index); } } else if (sortType.equals("desc")) { //鍊掓帓搴忥紝浠庡ぇ鎺掑埌灝?br /> int index; for (int i = 1; i < data.length; i++) { index = 0; for (int j = 1; j <= data.length - i; j++) { if (data[j] < data[index]) { index = j; } } //浜ゆ崲鍦ㄤ綅緗甦ata.length-i鍜宨ndex(鏈澶у?涓や釜鏁?br /> swap(data, data.length - i, index); } } else { System.out.println("鎮ㄨ緭鍏ョ殑鎺掑簭綾誨瀷閿欒錛?); } printArray(data);//杈撳嚭鐩存帴閫夋嫨鎺掑簭鍚庣殑鏁扮粍鍊?br /> } /** * 鎻掑叆鎺掑簭 * 鏂規硶錛氬皢涓涓褰曟彃鍏ュ埌宸叉帓濂藉簭鐨勬湁搴忚〃錛堟湁鍙兘鏄┖琛級涓?浠庤屽緱鍒頒竴涓柊鐨勮褰曟暟澧?鐨勬湁搴忚〃銆?br /> * 鎬ц兘錛氭瘮杈冩鏁癘(n^2),n^2/4 * 澶嶅埗嬈℃暟O(n),n^2/4 * 姣旇緝嬈℃暟鏄墠涓よ呯殑涓鑸紝鑰屽鍒舵墍闇鐨凜PU鏃墮棿杈冧氦鎹㈠皯錛屾墍浠ユц兘涓婃瘮鍐掓場鎺掑簭鎻愰珮涓鍊嶅錛岃屾瘮閫夋嫨鎺掑簭涔熻蹇?br /> * * @param data 瑕佹帓搴忕殑鏁扮粍 * @param sortType 鎺掑簭綾誨瀷 */ public void insertSort(int[] data, String sortType) { if (sortType.equals("asc")) { //姝f帓搴忥紝浠庡皬鎺掑埌澶?br /> //姣旇緝鐨勮疆鏁?br /> for (int i = 1; i < data.length; i++) { //淇濊瘉鍓峣+1涓暟鎺掑ソ搴?br /> for (int j = 0; j < i; j++) { if (data[j] > data) { //浜ゆ崲鍦ㄤ綅緗甹鍜宨涓や釜鏁?br /> swap(data, i, j); } } } } else if (sortType.equals("desc")) { //鍊掓帓搴忥紝浠庡ぇ鎺掑埌灝?br /> //姣旇緝鐨勮疆鏁?br /> for (int i = 1; i < data.length; i++) { //淇濊瘉鍓峣+1涓暟鎺掑ソ搴?br /> for (int j = 0; j < i; j++) { if (data[j] < data) { //浜ゆ崲鍦ㄤ綅緗甹鍜宨涓や釜鏁?br /> swap(data, i, j); } } } } else { System.out.println("鎮ㄨ緭鍏ョ殑鎺掑簭綾誨瀷閿欒錛?); } printArray(data);//杈撳嚭鎻掑叆鎺掑簭鍚庣殑鏁扮粍鍊?br /> } /** * 鍙嶈漿鏁扮粍鐨勬柟娉?br /> * @param data 婧愭暟緇?br /> */ public void reverse(int[] data) { int length = data.length; int temp = 0;//涓存椂鍙橀噺 for (int i = 0; i < length / 2; i++) { temp = data; data = data[length - 1 - i]; data[length - 1 - i] = temp; } printArray(data);//杈撳嚭鍒拌漿鍚庢暟緇勭殑鍊?br /> } /** * 蹇熸帓搴?br /> * 蹇熸帓搴忎嬌鐢ㄥ垎娌繪硶錛圖ivide and conquer錛夌瓥鐣ユ潵鎶婁竴涓簭鍒楋紙list錛夊垎涓轟袱涓瓙搴忓垪錛坰ub-lists錛夈?br /> * 姝ラ涓猴細 * 1. 浠庢暟鍒椾腑鎸戝嚭涓涓厓绱狅紝縐頒負 "鍩哄噯"錛坧ivot錛夛紝 * 2. 閲嶆柊鎺掑簭鏁板垪錛屾墍鏈夊厓绱犳瘮鍩哄噯鍊煎皬鐨勬憜鏀懼湪鍩哄噯鍓嶉潰錛屾墍鏈夊厓绱犳瘮鍩哄噯鍊煎ぇ鐨勬憜鍦ㄥ熀鍑嗙殑鍚庨潰錛堢浉鍚岀殑鏁板彲浠ュ埌浠諱竴杈癸級銆傚湪榪欎釜鍒嗗壊涔嬪悗錛岃鍩哄噯鏄畠鐨勬渶鍚庝綅緗傝繖涓О涓哄垎鍓詫紙partition錛夋搷浣溿?br /> * 3. 閫掑綊鍦幫紙recursive錛夋妸灝忎簬鍩哄噯鍊煎厓绱犵殑瀛愭暟鍒楀拰澶т簬鍩哄噯鍊煎厓绱犵殑瀛愭暟鍒楁帓搴忋?br /> * 閫掑洖鐨勬渶搴曢儴鎯呭艦錛屾槸鏁板垪鐨勫ぇ灝忔槸闆舵垨涓錛屼篃灝辨槸姘歌繙閮藉凡緇忚鎺掑簭濂戒簡銆傝櫧鐒朵竴鐩撮掑洖涓嬪幓錛屼絾鏄繖涓畻娉曟諱細緇撴潫錛屽洜涓哄湪姣忔鐨勮凱浠o紙iteration錛変腑錛屽畠鑷沖皯浼氭妸涓涓厓绱犳憜鍒板畠鏈鍚庣殑浣嶇疆鍘匯?br /> * @param data 寰呮帓搴忕殑鏁扮粍 * @param low * @param high * @see SortTest#qsort(int[], int, int) * @see SortTest#qsort_desc(int[], int, int) */ public void quickSort(int[] data, String sortType) { if (sortType.equals("asc")) { //姝f帓搴忥紝浠庡皬鎺掑埌澶?br /> qsort_asc(data, 0, data.length - 1); } else if (sortType.equals("desc")) { //鍊掓帓搴忥紝浠庡ぇ鎺掑埌灝?br /> qsort_desc(data, 0, data.length - 1); } else { System.out.println("鎮ㄨ緭鍏ョ殑鎺掑簭綾誨瀷閿欒錛?); } } /** * 蹇熸帓搴忕殑鍏蜂綋瀹炵幇錛屾帓姝e簭 * @param data * @param low * @param high */ private void qsort_asc(int data[], int low, int high) { int i, j, x; if (low < high) { //榪欎釜鏉′歡鐢ㄦ潵緇撴潫閫掑綊 i = low; j = high; x = data; while (i < j) { while (i < j && data[j] > x) { j--; //浠庡彸鍚戝乏鎵劇涓涓皬浜巟鐨勬暟 } if (i < j) { data = data[j]; i++; } while (i < j && data < x) { i++; //浠庡乏鍚戝彸鎵劇涓涓ぇ浜巟鐨勬暟 } if (i < j) { data[j] = data; j--; } } data = x; qsort_asc(data, low, i - 1); qsort_asc(data, i + 1, high); } } /** * 蹇熸帓搴忕殑鍏蜂綋瀹炵幇錛屾帓鍊掑簭 * @param data * @param low * @param high */ private void qsort_desc(int data[], int low, int high) { int i, j, x; if (low < high) { //榪欎釜鏉′歡鐢ㄦ潵緇撴潫閫掑綊 i = low; j = high; x = data; while (i < j) { while (i < j && data[j] < x) { j--; //浠庡彸鍚戝乏鎵劇涓涓皬浜巟鐨勬暟 } if (i < j) { data = data[j]; i++; } while (i < j && data > x) { i++; //浠庡乏鍚戝彸鎵劇涓涓ぇ浜巟鐨勬暟 } if (i < j) { data[j] = data; j--; } } data = x; qsort_desc(data, low, i - 1); qsort_desc(data, i + 1, high); } } /** *浜屽垎鏌ユ壘鐗瑰畾鏁存暟鍦ㄦ暣鍨嬫暟緇勪腑鐨勪綅緗?閫掑綊) *鏌ユ壘綰挎ц〃蹇呴』鏄湁搴忓垪琛?br /> [email=*@paramdataset]*@paramdataset[/email] [email=*@paramdata]*@paramdata[/email] [email=*@parambeginIndex]*@parambeginIndex[/email] [email=*@paramendIndex]*@paramendIndex[/email] [email=*@returnindex]*@returnindex[/email] */ public int binarySearch(int[] dataset, int data, int beginIndex, int endIndex) { int midIndex = (beginIndex + endIndex) >>> 1; //鐩稿綋浜巑id = (low + high) / 2錛屼絾鏄晥鐜囦細楂樹簺 if (data < dataset[beginIndex] || data > dataset[endIndex] || beginIndex > endIndex) return -1; if (data < dataset[midIndex]) { return binarySearch(dataset, data, beginIndex, midIndex - 1); } else if (data > dataset[midIndex]) { return binarySearch(dataset, data, midIndex + 1, endIndex); } else { return midIndex; } } /** *浜屽垎鏌ユ壘鐗瑰畾鏁存暟鍦ㄦ暣鍨嬫暟緇勪腑鐨勪綅緗?闈為掑綊) *鏌ユ壘綰挎ц〃蹇呴』鏄湁搴忓垪琛?br /> [email=*@paramdataset]*@paramdataset[/email] [email=*@paramdata]*@paramdata[/email] [email=*@returnindex]*@returnindex[/email] */ public int binarySearch(int[] dataset, int data) { int beginIndex = 0; int endIndex = dataset.length - 1; int midIndex = -1; if (data < dataset[beginIndex] || data > dataset[endIndex] || beginIndex > endIndex) return -1; while (beginIndex <= endIndex) { midIndex = (beginIndex + endIndex) >>> 1; //鐩稿綋浜巑idIndex = (beginIndex + endIndex) / 2錛屼絾鏄晥鐜囦細楂樹簺 if (data < dataset[midIndex]) { endIndex = midIndex - 1; } else if (data > dataset[midIndex]) { beginIndex = midIndex + 1; } else { return midIndex; } } return -1; } public static void main(String[] args) { SortTest sortTest = new SortTest(); int[] array = sortTest.createArray(); System.out.println("==========鍐掓場鎺掑簭鍚?姝e簭)=========="); sortTest.bubbleSort(array, "asc"); System.out.println("==========鍐掓場鎺掑簭鍚?鍊掑簭)=========="); sortTest.bubbleSort(array, "desc"); array = sortTest.createArray(); System.out.println("==========鍊掕漿鏁扮粍鍚?========="); sortTest.reverse(array); array = sortTest.createArray(); System.out.println("==========閫夋嫨鎺掑簭鍚?姝e簭)=========="); sortTest.selectSort(array, "asc"); System.out.println("==========閫夋嫨鎺掑簭鍚?鍊掑簭)=========="); sortTest.selectSort(array, "desc"); array = sortTest.createArray(); System.out.println("==========鎻掑叆鎺掑簭鍚?姝e簭)=========="); sortTest.insertSort(array, "asc"); System.out.println("==========鎻掑叆鎺掑簭鍚?鍊掑簭)=========="); sortTest.insertSort(array, "desc"); array = sortTest.createArray(); System.out.println("==========蹇熸帓搴忓悗(姝e簭)=========="); sortTest.quickSort(array, "asc"); sortTest.printArray(array); System.out.println("==========蹇熸帓搴忓悗(鍊掑簭)=========="); sortTest.quickSort(array, "desc"); sortTest.printArray(array); System.out.println("==========鏁扮粍浜屽垎鏌ユ壘=========="); System.out.println("鎮ㄨ鎵劇殑鏁板湪絎? + sortTest.binarySearch(array, 74) + "涓綅瀛愩傦紙涓嬫爣浠?璁$畻錛?); } } 杞澆鍦板潃錛?a target="_blank">http://blog.csdn.net/lenotang/archive/2008/11/29/3411346.aspx 鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a target="_blank">http://blog.csdn.net/zuoluoboy/archive/2009/04/25/4123943.aspx |
PO:persistant object鎸佷箙瀵硅薄,鍙互鐪嬫垚鏄笌鏁版嵁搴撲腑鐨勮〃鐩告槧灝勭殑java瀵硅薄銆傛渶綆鍗曠殑PO灝辨槸瀵瑰簲鏁版嵁搴撲腑鏌愪釜琛ㄤ腑鐨勪竴鏉¤褰曪紝澶氫釜璁板綍鍙互鐢?/font>PO鐨勯泦鍚堛?/font>PO涓簲璇ヤ笉鍖呭惈浠諱綍瀵規暟鎹簱鐨勬搷浣?/font>.
VO:value object鍊煎璞°傞氬父鐢ㄤ簬涓氬姟灞備箣闂寸殑鏁版嵁浼犻掞紝鍜?/font>PO涓鏍蜂篃鏄粎浠呭寘鍚暟鎹屽凡銆備絾搴旀槸鎶借薄鍑虹殑涓氬姟瀵硅薄,鍙互鍜岃〃瀵瑰簲,涔熷彲浠ヤ笉,榪欐牴鎹笟鍔$殑闇瑕?/font>.涓漢瑙夊緱鍚?/font>DTO(鏁版嵁浼犺緭瀵硅薄),鍦?/font>web涓婁紶閫?/font>.
DAO:data access object鏁版嵁璁塊棶瀵硅薄錛屾瀵硅薄鐢ㄤ簬璁塊棶鏁版嵁搴撱傞氬父鍜?/font>PO緇撳悎浣跨敤錛?/font>DAO涓寘鍚簡鍚勭鏁版嵁搴撶殑鎿嶄綔鏂規硶銆傞氳繃瀹冪殑鏂規硶,緇撳悎PO瀵規暟鎹簱榪涜鐩稿叧鐨勬搷浣?/font>.
BO:business object涓氬姟瀵硅薄,灝佽涓氬姟閫昏緫鐨?/font>java瀵硅薄,閫氳繃璋冪敤DAO鏂規硶,緇撳悎PO,VO榪涜涓氬姟鎿嶄綔;
POJO:plain ordinary java object 綆鍗曟棤瑙勫垯java瀵硅薄,鎴戜釜浜鴻寰楀畠鍜屽叾浠栦笉鏄竴涓眰闈笂鐨勪笢瑗?/font>,VO鍜?/font>PO搴旇閮藉睘浜庡畠.
PO錛?nbsp;
persistant object鎸佷箙瀵硅薄
鏈褰㈣薄鐨勭悊瑙e氨鏄竴涓?font face="Arial">PO灝辨槸鏁版嵁搴撲腑鐨勪竴鏉¤褰曘?nbsp;
濂藉鏄彲浠ユ妸涓鏉¤褰曚綔涓轟竴涓璞″鐞嗭紝鍙互鏂逛究鐨勮漿涓哄叾瀹冨璞°?nbsp;
BO錛?nbsp;
business object涓氬姟瀵硅薄
涓昏浣滅敤鏄妸涓氬姟閫昏緫灝佽涓轟竴涓璞°傝繖涓璞″彲浠ュ寘鎷竴涓垨澶氫釜鍏跺畠鐨勫璞°?nbsp;
姣斿涓涓畝鍘嗭紝鏈夋暀鑲茬粡鍘嗐佸伐浣滅粡鍘嗐佺ぞ浼?nbsp;鍏崇郴絳夌瓑銆?nbsp;
鎴戜滑鍙互鎶婃暀鑲茬粡鍘嗗搴斾竴涓?font face="Arial">PO錛屽伐浣滅粡鍘嗗搴斾竴涓?/font>PO錛岀ぞ浼?nbsp;鍏崇郴瀵瑰簲涓涓?/font>PO銆?nbsp;
寤虹珛涓涓搴旂畝鍘嗙殑BO瀵硅薄澶勭悊綆鍘嗭紝姣忎釜BO鍖呭惈榪欎簺PO銆?nbsp;
榪欐牱澶勭悊涓氬姟閫昏緫鏃訛紝鎴戜滑灝卞彲浠ラ拡瀵?font face="Arial">BO鍘誨鐞嗐?nbsp;
VO 錛?nbsp;
value object鍊煎璞?nbsp;
ViewObject琛ㄧ幇灞傚璞?nbsp;
涓昏瀵瑰簲鐣岄潰鏄劇ず鐨勬暟鎹璞°傚浜庝竴涓?font face="Arial">WEB欏甸潰錛屾垨鑰?/font>SWT銆?/font>SWING鐨勪竴涓晫闈紝鐢ㄤ竴涓?/font>VO瀵硅薄瀵瑰簲鏁翠釜鐣岄潰鐨勫箋?nbsp;
DTO 錛?nbsp;
Data Transfer Object鏁版嵁浼犺緭瀵硅薄
涓昏鐢ㄤ簬榪滅▼璋冪敤絳夐渶瑕佸ぇ閲忎紶杈撳璞$殑鍦版柟銆?nbsp;
姣斿鎴戜滑涓寮犺〃鏈?font face="Arial">100涓瓧孌碉紝閭d箞瀵瑰簲鐨?/font>PO灝辨湁100涓睘鎬с?nbsp;
浣嗘槸鎴戜滑鐣岄潰涓婂彧瑕佹樉紺?font face="Arial">10涓瓧孌碉紝
瀹㈡埛绔敤WEB service鏉ヨ幏鍙栨暟鎹紝娌℃湁蹇呰鎶婃暣涓?/font>PO瀵硅薄浼犻掑埌瀹㈡埛绔紝
榪欐椂鎴戜滑灝卞彲浠ョ敤鍙湁榪?font face="Arial">10涓睘鎬х殑DTO鏉ヤ紶閫掔粨鏋滃埌瀹㈡埛绔紝榪欐牱涔熶笉浼氭毚闇叉湇鍔$琛ㄧ粨鏋?/font>.鍒拌揪瀹㈡埛绔互鍚庯紝濡傛灉鐢ㄨ繖涓璞℃潵瀵瑰簲鐣岄潰鏄劇ず錛岄偅姝ゆ椂瀹冪殑韜喚灝辮漿涓?/font>VO
POJO 錛?nbsp;
plain ordinary java object 綆鍗?/font>java瀵硅薄
涓漢鎰熻POJO鏄渶甯歌鏈澶氬彉鐨勫璞★紝鏄竴涓腑闂村璞★紝涔熸槸鎴戜滑鏈甯告墦浜ら亾鐨勫璞°?nbsp;
涓涓?font face="Arial">POJO鎸佷箙鍖栦互鍚庡氨鏄?/font>PO
鐩存帴鐢ㄥ畠浼犻掋佷紶閫掕繃紼嬩腑灝辨槸DTO
鍘熸枃鏉ヨ嚜錛氶噹钄瘋枃 http://www.yeqiangwei.com/club/f4b0l0fp1t342010p1.html
鐩存帴鐢ㄦ潵瀵瑰簲琛ㄧず灞傚氨鏄?font face="Arial">VO
DAO錛?nbsp;
data access object鏁版嵁璁塊棶瀵硅薄
榪欎釜澶у鏈鐔熸倝錛屽拰涓婇潰鍑犱釜O鍖哄埆鏈澶э紝鍩烘湰娌℃湁浜掔浉杞寲鐨勫彲鑳芥у拰蹇呰.
涓昏鐢ㄦ潵灝佽瀵規暟鎹簱鐨勮闂傞氳繃瀹冨彲浠ユ妸POJO鎸佷箙鍖栦負PO錛岀敤PO緇勮鍑烘潵VO銆?/font>DTO