é¦–å…ˆæˆ‘ä»¬çœ‹åŽŸå§‹è¦æ±‚ï¼šå®¢æˆ·è¦æ±‚ž®†ä¸€æ‰šw›‡å‘˜åå•å˜å…¥åˆ°CSVå’ŒXMLä¸¤ç§æ–‡äšgä¸åŽ»åQŒä»¥åŽè¿˜æœ‰å¯èƒ½å¢žåŠ åˆ«çš„æ–‡ä»¶æ ¼å¼ï¼Œæ¯”如PDFåQŒXLS½{‰ï¼Œè™½ç„¶˜q™æ˜¯ä¸‹ä¸€æœŸçš„内容åQŒä½†˜q™ä¸€æœŸåº”该考虑到å˜åŒ–ï¼Œå®¢æˆ·è¦æ±‚扩展性一定è¦å¥½ã€?/p>
没问题,有了设计模å¼å“应å˜åŒ–ä¸éš¾ã€‚这时我们å¯ä»¥ç”¨åˆ°æ¨¡æ¿æ–¹æ³•模å¼ï¼š
定义一个æ“作ä¸çš„算法的骨架åQŒè€Œå°†ä¸€äº›æ¥éª¤åšg˜qŸåˆ°åç±»ä¸?/strong>ã€?/p>
先请看骨架抽象类åQ?/p>
很好åQŒå›ºå®šçš„函数和æ¥éª¤éƒ½åœ¨æŠ½è±¡åŸº¾cÖM¸å†™å®šäº†ï¼Œå†çœ‹ä¸¤ä¸ªå…·ä½“实现¾c»ï¼Œå®ƒä»¬è¦å®žçŽ°çš„ž®±æ˜¯makeFile函数而已ã€?/p>
˜q™æ ·æ˜¨å®Œä»¥åŽæ„Ÿè§‰å¾ˆå¥½åQŒå› 为我们æˆåŠŸçš„æŠŠå˜åŒ–å’Œä¸å˜åˆ†ç¦»å¼€æ¥ï¼Œä¸å˜çš„部分放在了抽象基类ä¸ï¼Œè€Œå®¹æ˜“å˜åŒ–的部分攑֜¨äº†ä¸¤ä¸ªå…·ä½“çš„åç±»ä¸ï¼Œ˜q™æ ·å¦‚æžœå†å¢žåР䏀¿Uæ–°æ–‡äšgæ ¼å¼åQŒä»ŽæŠ½è±¡åŸºç±»å†æ‰©å±•出一个å¾cÕd³å¯ã€‚很好,˜q™æ ·ž®×ƒ¸æ€•å˜åŒ–了。客户对æ¤ä¹Ÿæ²¡æœ‰å¼‚è®®ã€?/p>
调用½CÞZ¾‹å¦‚下åQ?/p>
客户看到了我们的调用的例å,觉得应该更絋zÖM¸€äº›ï¼Œä»–è¯´å˜æˆå„ç§ä¸åŒçš„æ–‡ä»¶æ˜¯é€šè¿‡ç‚¹å‡»æŒ‰é’®æ¥å®žçŽ°çš„åQŒå¦‚æžœæ¯ä¸ªæŒ‰é’®çš„事äšg处ç†å‡½æ•°éƒ½è¦ç”Ÿæˆå…·ä½“åç±»å²‚ä¸æ˜¯å¤ªæÀL¿äº†å—åQŸè¿™æ ·åšæ¯ä¸ªæ–‡äšgä¸‹è²æŒ‰é’®çš„事件处ç†ä»£ç 䏿˜¯éƒ½ä¸ä¸€æ øP¼Ÿ
有点é“ç†åQŒå¦‚今ç†è§£åˆ°˜q™ä¸€å±‚的客户实在是ä¸å¤šè§äº†ã€‚丘q‡å¾ˆå®ÒŽ(gu¨©)˜“满èƒö他的需求,我们å¯ä»¥å¼•å…¥å射的方法:
å› äØ“æŒ‰é’®ä¸Šçš„æ–‡å—å’Œç±»åæ˜¯æœ‰å…³çš„,如下载CSV的按钮上ž®±æœ‰CSV的文å—,˜q™å¯ä»¥é€šè¿‡æ£åˆ™è¡¨è¾¾å¼å–é“,å†ç»„åˆä¸€ä¸‹ä¸ž®±æ˜¯¾cÕd了å—åQ?/span>csv到com.heyang.CSVFileMaker,xml到com.heyang.XMLFileMakeråQŒå…¶å®žå˜åŒ–å°±æ˜¯ä¸‰ä¸ªå—æ¯è€Œå·²ã€‚å¦‚æžœå¢žåŠ æŒ‰é’®ï¼Œå–出按钮ä¸çš„ä¸‰ä¸ªå—æ¯å†è°ƒç”¨callByReflect函数å›_¯åQŒè¿™ä¸ªè¿‡½E‹ç®€ç›´å¯ä»¥å›ºåŒ–ã€?/span>
客户看到åå°„æ–ÒŽ(gu¨©)³•以åŽå¾ˆæ˜¯æ»¡æ„åQŒæ²¡æœ‰æ„è§äº†ã€‚待客户走åŽåQŒé¡¹ç›®ç»ç†æŠŠä½ 拉åˆîC¸€è¾¹ï¼Œè¯ß_¼š
“ä½ åˆšæ‰çš„æ–ÒŽ(gu¨©)³•ä¸é”™åQŒç¡®å®žå¾ˆå¼ºï¼Œä½†çœ‹å¾—懂åå°„òq¶èƒ½ç‰|´»æŽŒæ¡çš„ähæ°´åã^è¦å¤Ÿä¸€òq´ç»éªŒæ‰è¡Œï¼Œ¾l´æŠ¤çš„æ´»è®©ä¸€òq´ç»éªŒçš„人去òq²å¤ªå¯æƒœäº†ï¼Œæœ€å¥½æ”¹æ”¹ï¼Œæœ€å¥½è¾¾åˆ°è®©æ–°æ‰‹ä¹Ÿèƒ½æŽŒæ¡òq¶ä¿®æ”¹çš„½E‹åº¦ã€?#8221;ã€?/span>
没办法,领导æ€ÀLœ‰é¢†å¯¼çš„考虑åQŒä»–˜q™ä¹ˆè¯´ä¹Ÿå¾ˆåˆç†ï¼Œæˆæœ¬é—®é¢˜æˆ‘å¯ä»¥ä¸è€ƒè™‘åQŒä½†å¦‚æžœæŠŠç¨‹åºæžå¾—夿‚貌似NBåQŒèƒ½è®©ä¸€äº›å¦è‰ÞZ¸¾_„¡š„äºÞZñ”生云山雾¾|©çš„æ„Ÿè§‰åQŒæœ‰æ—¶è¿˜èƒ½è¢«äººå°Š¿UîC¸€å£?#8220;å¤§ä¾ ”åQŒä½†è°ä¹Ÿä¸æ¯”è°å‚»å¤šå°‘åQŒè¿™å£°å¤§ä¾ 䏿˜¯ç™½å«çš„åQŒä½†æ˜¯å‡ºäº†é—®é¢˜æˆ–是有了å˜åŒ–åˆ«äºø™¿˜æ˜¯è¦æ‰¾ä½ åQŒåˆ°å¤´æ¥˜q˜æ˜¯¾l™è‡ªå·±æ·»ä¹±ï¼Œ˜q™äº›éƒ½æ˜¯ä¹‰åŠ¡åŠ›_ЍåQŒä½•苦æ¥å‘¢ï¼Ÿ˜q˜æ˜¯åº”该改得å®ÒŽ(gu¨©)˜“些,让大安™ƒ½èƒ½ä¿®æ”¹ï¼Œæˆ‘å¯ä¸æ„¿æ„åŠå¤œä¸‰æ›´è¢«äººå«èµäh¥é—®é—®é¢˜ã€?/span>
用Springçš„IoCž®±å¯ä»¥è§£å†³é—®é¢˜ï¼Œå†™ä¸€ä¸ªæ–°¾cÕdƈé…置到XMLæ–‡äšgä¸å¯¹æ–°æ‰‹æ¥è¯´é—®é¢˜ä¸å¤§åQŒè¿™ä¸‹å¯ä»¥è®©é¢†å¯¼æ”‘Ö¿ƒäº†ï¼Œè‡ªå·±ž®±æ›´æ”‘Ö¿ƒäº†ã€?/span>
IoCæ–ÒŽ(gu¨©)¡ˆä»£ç 如下åQ?/span>
Bean。xmlæ–‡äšg内容很简å•å§åQ?/span>
好了。到˜q™é‡Œé—®é¢˜ž®±å½»åº•结æŸäº†åQŒç»ˆäºŽæ»¡‘³äº†å®¢æˆ·å’Œä¸Š¾U§çš„è¦æ±‚åQŒå¯ä»¥å›žå®¶ç¡ä¸ªå¥½è§‰äº†åQŒä¸ç”¨æ‹…心别人打æ…了ã€?/span>
æ€åº¦æ”¹å˜ä¸€åˆ‡ï¼Œå˜åŒ–æ¥äº†äººæ€ÀL˜¯è¦å¤šåšä¸€äº›ï¼Œå¿ƒç†å½“ç„¶æ˜¯ä¸æ„¿æ„çš„ï¼Œä½†æŠ±æ€¨æˆ–æ˜¯æ¶ˆæžæŠµåˆ‰™ƒ½ä¸æ˜¯è§£å†³é—®é¢˜ä¹‹é“åQ›å¦‚果把它看åšä¸€ä¸ªæŒ‘战的契机åQŒå‡¡äº‹å¤šæ€è€ƒä¸€äº›ï¼Œä¸ä½†èƒ½è§£å†³é—®é¢˜ï¼Œè‡ªå·±ä¹Ÿä¼šæœ‰æ‰€æé«˜åQŒè¿™ž®±æ˜¯¿U¯æžçš„æ€åº¦å¸¦æ¥çš„好处ã€?/span>