˜q™ç±»è®¾è®¡æ¨¡å¼çš„ä¾‹åæœ‰Model-View-ControlleråQˆMVCåQ‰æ¨¡å¼ã€Value Object J2EE模å¼å’ŒData Access ObjectåQˆDAOåQ‰J2EE模å¼
  Isolated use是指设计模å¼çš„ä‹É用是éšè—¾l†èŠ‚çš„è®¾è®¡æ¨¡å¼ã€‚è¿™¾c»è®¾è®¡æ¨¡å¼çš„å“质包括åQ?/P>
  ˜q™ç±»è®¾è®¡æ¨¡å¼çš„ä¾‹åæœ‰Singleton GoFæ¨¡å¼æˆ–者Intercepting Filter J2EE模å¼ã€?BR>  ž®†è®¾è®¡æ¨¡å¼åˆ’åˆ†äØ“å‡ ç±»ä¸ÞZº†è§£è®¾è®¡æ¨¡å¼çš„范围æä¾›äº†ä¸€¿U快速的æ–ÒŽ³•。了解范围ä‹É评估设计模å¼çš„åª„å“æ›´åŠ è½»æ¾ã€‚å¯ä»¥ä‹É用或者抛弃这¿U设计模å¼å—åQŸä¸€æ—¦é‡‡ç”¨è¿™¿U设计模å¼å°±ä¼šåª„å“应用程åºçš„设计å—?˜q™ç§è®¾è®¡æ¨¡å¼å½±å“了应用程åºçš„多个部分和其他的应用½E‹åºäº†å—åQŸé¢„先了解这些媄å“äØ“é‡‡ç”¨è®¾è®¡æ¨¡å¼æä¾›äº†æŒ‡å¯¹{€?BR>
设计模å¼åº”用AntiPatterns
  éšç€è®¾è®¡æ¨¡å¼é€æ¸æ™®åŠåQŒå‡ºçŽîCº†å¦ä¸€¿Uå«åšAntiPatterns的模å¼ç±»åž‹ã€‚å°½½Ž¡è®¾è®¡æ¨¡å¼æä¾›äº†å…³äºŽå¯é‡å¤çš„æœ€ä½Ïx–¹æ³•的专业知识åQŒä½†æ˜¯AntiPatterns通常æè¿°åº”当é¿å…çš„é‡å¤è¡Œä¸ºã€‚AntiPatterns 验è¯äº†è¿™æ ïLš„事实åQšåšé”™äº‹æƒ…和办对事情的ähä¸€æ ·å¤šã€?BR>  本节ž®†æŽ¢è®¨è®¾è®¡æ¨¡å¼é‡‡ç”¨ä¸çš„AntiPatterns。了解这些AntiPatternså¯ä»¥å¸®åŠ©æ‚¨é¿å…设计模å¼é‡‡ç”¨ä¸çš„缺陗÷€‚如åŒè®¾è®¡æ¨¡å¼ä¸€æ øP¼Œåœ¨ä»–们æä¾›äº†ä¸€äº›è¿œè§æˆ–者他们是一些éžå¸¸ç†Ÿæ‚‰çš„环境æ—Óž¼Œåœ¨ä»–们å¯ä»¥äؓ您的¾l验æ·ÕdŠ è‰²å½©å’Œä‹É您ä¸å†æ„Ÿåˆ°å¤ç‹¬æ—¶åQŒæ¤å¤„çš„AntiPatterns是一个全新的概念。如果您想阅è¯ÀL›´å¤šæœ‰å…³AntiPatterns的资料,请å‚è§æœ¬æ–‡ç»“ž®‘Ö¤„的资æºåˆ—表ã€?BR>
AntiPattern清å•
设计模å¼?是的åQŒæˆ‘们全部拥æœ?/B>
  问题åQ?/B>军_®šåœ¨é¡¹ç›®ä¸ä½¿ç”¨å“ªä¸€¿U设计模å¼ã€?BR>  应用åQ?/B> 既有broad exposureåˆæœ‰isolated use设计模å¼ã€?BR>  环境åQ?/B>一ä½å¼€å‘äh员通过介ç»å¸Œæœ›åœ¨ä¸€™å¹å·¥½E‹ä¸ä½¿ç”¨è®¾è®¡æ¨¡å¼ã€?BR>  动力åQ?/B>AntiPattern的动力通常有两¿Uæ¥æºã€‚一¿U是开å‘äh员通过包括设计模å¼çš„æœ€ä½›_®žè·‰|¥æ”¹è¿›™å¹ç›®çš„æÍ望。å¦ä¸€¿U是开å‘äh员天生的好奇心驱使他利用˜q™ä¸ª™å¹ç›®æ¥ç ”½I¶è®¾è®¡æ¨¡å¼ã€?BR>  推è的解å†Ïx–¹æ¡ˆï¼š™å¹ç›®ä¸åº”用了所有知å的设计模å¼ã€‚è®¾è®¡æ¨¡å¼æ‰‹å†Œç”Ÿæˆä¸€ä»½æ¸…å•ï¼Œè€Œç›®æ ‡æ˜¯å¯ä»¥æ ¸å¯¹æ‰€æœ‰çš„设计模å¼ã€?BR>  产生的è¯å¢ƒï¼š™å¹ç›®å›¢é˜Ÿå’Œäº¤ä»˜çš„应用½E‹åºç”׃ºŽä¸è‡ªç„¶åœ°å¼•入太多设计模å¼è€Œéå—æŸå¤±ã€‚è¿™ž®±å¯¼è‡´è®¾è®¡å’Œå¼€å‘éžå¸¸å¤æ‚。这¿Uä¸å¿…è¦çš„夿‚性会从已¾l完æˆçš„工作é‡ã€å¼€å‘团队了解å‘生事情的能力ã€åº”用程åºçš„实际性能和功能的æ£ç¡®æ€§ç‰æ–šw¢å½±å“开呿ˆæžœã€?BR>  设计基本原ç†åQ?/B>è®¾è®¡æ¨¡å¼æ˜¯ä¸“ä¸šçŸ¥è¯†çš„ä¸»è¦æ¥æºã€‚å°½½Ž¡ä‹É用他们的效果很好åQŒä½†æ˜¯å…¨éƒ¨ä‹É用他们就未必也是好的ã€?BR>实际解决æ–ÒŽ¡ˆåQšè®¾è®¡æ¨¡å¼çš„æè¿°åŒ…å«äº†ä‹É用模å¼çš„ç›®æ ‡è¯å¢ƒã€‚å¿…™å»è€ƒè™‘如何¼‹®ä¿è®¾è®¡æ¨¡å¼åŒšw…™å¹ç›®ã€‚第二,设计模å¼ä¸æ˜¯æ¥æºäºŽå½“æŸäh阅读了一本设计模å¼çš„著作åŽï¼Œé—®ï¼šâ€œæˆ‘å¯ä»¥æŠŠè¿™ä¸ªè®¾è®¡æ¨¡å¼ä‹É用在什么地方?â€è€Œæ˜¯æ¥æºäºŽæŸäººå¯»æ‰‘Ö·²å‘现问题的解å†Ïx–¹æ¡ˆã€?BR>
Developer/Project AntiPattern的实�/B>
  (也称为:Design pattern xyz? YeahåQŒæˆ‘们有10ä¸?
  问题åQ?/B>åœ¨é¡¹ç›®ä¸æˆ–者项目之间控制设计模å¼çš„实现ã€?BR>  应用åQ?/B>broad exposureå’Œisolated use设计模å¼éƒ½ä»Žè§£å†³˜q™ç§çŽ¯å¢ƒä¸å—益。但是,broad exposureè®¾è®¡æ¨¡å¼æ— 疑控制了实现ã€?BR>  è¯å¢ƒåQ?/B>å¼€å‘团队将设计模弾l“åˆåˆ°é¡¹ç›®ä¸ã€‚团队由许多¾l验丰富的开å‘äh员组æˆï¼Œä»–们知é“应该什么时候ä‹É用设计模å¼ã€‚所以会æ£ç¡®çš„设计模å¼ã€‚如果涉åŠåˆ°å¤šä¸ª™å¹ç›®åQŒé¡¹ç›®ä¹‹é—´æ²¡æœ‰è®¾è®¡æ¨¡å¼å®žçŽ°å…±äº«ã€?BR>  动力åQ?/B>最¾lˆæœŸé™æ—¥ç›Šä͘q‘,团队æˆå‘˜å·¥ä½œæ•ˆçŽ‡å¾ˆé«˜ã€‚é‡æ–îC‹É用实çŽîC¼šå½±å“团队效率。å‡è®¾ä»–们都是专å®Óž¼Œä»–们的实现都éžå¸¸ä¼˜ç§€ã€‚在多项目情况ä¸åQŒè·¨å›¢é˜Ÿé€šä¿¡å’Œä»£ç 共享è¦ä¹ˆæ²¡æœ‰è¢«è€ƒè™‘åQŒè¦ä¹ˆè¢«ä½œäØ“˜q›åº¦è¡¨ä¸çš„æ½œåœ¨åª„å“被排除ã€?BR>  推è的解å†Ïx–¹æ¡ˆï¼šå›¢é˜Ÿå¯ä»¥æ ÒŽ®éœ€è¦å•独包å«å’Œå®žçŽ°è®¾è®¡æ¨¡å¼ã€?BR>  产生的è¯å¢ƒï¼šå³ä‹É使用了棼‹®çš„设计模å¼åQŒä½†æ˜¯ä»–们是以很多ä¸åŒçš„æ–¹å¼å®žçŽ°çš„ã€‚åœ¨é™åˆ¶é›†æˆå’Œé‡æ–îC‹Éç”¨æˆæžœçš„实现之间å˜åœ¨ä¸å…¼å®V€‚很多ä¸å¿…è¦çš„æ—¶é—´å’Œå·¥ä½œè¢«èŠ±è´¹åœ¨¾l´æŠ¤ã€è°ƒè¯•和扩展å„ç§å®žçŽ°ä¸Šã€‚æœ€¾lˆï¼Œå„ç§å®žçŽ°éƒ½å°†è¢«ç»Ÿä¸€ã€?BR>  设计基本原ç†åQ?/B>应当å…许专家æˆå‘˜ç‹¬ç«‹å·¥ä½œã€‚åªè¦æ‰€åŒ…å«çš„设计模å¼èƒö够好åQŒå°±ä¸éœ€è¦å…±äº«å®žçްã€?BR>  实际解决æ–ÒŽ¡ˆåQ?/B>å¼€å‘团队应当å调设计模å¼çš„使用。共享设计模å¼çš„公共实现å¯åœ¨ž®†æ¥é™ä½Žæˆæœ¬åQŒä½†æ˜¯æ›´é‡è¦çš„æ˜¯åQŒå®ƒä½¿å¼€å‘äh员之间互相兼å®V€‚如果需è¦ï¼Œ˜q™ç§å…׃ínå¯ä»¥è¢«é™åˆ¶åˆ°åˆ’å½’å…ˆå‰è®¨è®ºçš„broad exposure设计模å¼å†…。é‡ç”¨å®žçŽ°åœ¨™å¹ç›®é—´ä¹Ÿæžæœ‰ä»·å€û|¼Œž®¤å…¶åœ¨æœªæ¥å°†è¦é›†æˆçš„æ—¶å€™ã€?BR>
设计模å¼é‡‡ç”¨ä¸IDE的角è‰?/B>
  IDE在ç‘ô¾lå‘展和æä¾›æ›´å¤šçš„功能。最åˆçš„IDE¾l„æˆäº†ä¸€¿U编辑环境和一些调试工兗÷€‚现在,他们通常包å«è®¾è®¡çŽ¯å¢ƒã€å®¡è®¡å·¥å…—÷€é…¾|®ç®¡ç†ç³»¾lŸé›†æˆç‰½{‰ã€‚éšç€IDE䏿–扩展范围åQŒéœ€è¦ç¡®è®¤ä»–们在设计模å¼å®žçްä¸çš„角色。诚ç„Óž¼Œè®¾è®¡æ¨¡å¼åœ¨å¼€å‘è¯a€ä¸å®žçŽŽÍ¼Œè€ŒIDEå¯ä»¥ç”¨äºŽ¾~–辑æºä»£ç 。但是,IDEå¯ä»¥æ‰®æ¼”其他的角色å—?
  一些IDEå…ähœ‰ä¸‹æ‹‰èœå•åQŒä‹É您能够选择应用½E‹åºä¸åŒ…括的设计模å¼ã€‚虽然这å¯ä»¥åŠ å¿«è®¾è®¡æ¨¡å¼çš„ä‹É用,但是它åªä¼šå¯¼è‡´æ›´å¿«åœ°¾~–写出æžå·®çš„代ç 。评估这个特性需è¦è®°ä½å‡ ä¸ªå› ç´ ã€?BR>  ½W¬ä¸€åQŒè®¾è®¡æ¨¡å¼åœ¨æŠ½è±¡ä¸æ˜q°é—®é¢˜ï¼Œòq‰™œ€è¦ä¸€äº›è¯‘ç æ¥è¾‘Öˆ°æ£ç¡®çš„实现。但是,他们常常包å«â€œç¤ºä¾‹å®žçŽŽÍ¼ˆsample implementationåQ‰â€ï¼Œòq¶ä¸”IDEæ£æ˜¯ž®†è¿™¿U示例类¾l“æž„æ’入到应用程åºä¸ã€‚这很å¯èƒ½ä¸æ˜¯æ‰€éœ€è¦çš„实现åQŒåƈ且把他们攑ֈ°åº”用½E‹åºä¸å°†å¸¦æ¥æ›´å¤šçš„困惑,以åŠéœ€è¦æ›´å¤šçš„¾~–è¾‘å’Œé‡æž„å·¥ä½œè€Œä¸æ˜¯æ€è€ƒæœ€åˆçš„实现ã€?BR>  ½W¬äºŒåQŒå’ŒIDEæ‹–æ”¾è®¾è®¡æ¨¡å¼æ–ÒŽ³•有关的å¦ä¸€ä¸ªé—®é¢˜æ˜¯å‰é¢è®¨è®ºçš„两¿UAntiPatternsã€‚åŠ å¿«è®¾è®¡æ¨¡å¼çš„实现很å¯èƒ½ä¼šäº§ç”Ÿå¤§é‡çš„设计模å¼åº”用,以åŠåŒä¸€è®¾è®¡æ¨¡å¼çš„多¿Uç‰ˆæœ¬ï¼Œè€Œä¸æ˜¯è§£å†³ä“Qæ„问题的版本ã€?BR>  设计模å¼é¢äÍ的挑战ä¸ä»…仅是得åˆîC¸€‹Æ¡å¿«é€Ÿå®žçŽŽÍ¼Œè€Œæ˜¯¼‹®å®šä½¿ç”¨äº†æ£¼‹®çš„实现åQŒä»¥åŠæœºæž„ä¸å·²æœ‰çš„一个完¾ŸŽçš„实现ã€?BR>
BEA WebLogic Workshop 8.1和设计模�/B>
  您å¯èƒ½æ˜¯ä¸€ä½BEAçš„å®¢æˆøP¼Œå¦‚果您æ£åœ¨é˜…è¯ÀLœ¬æ–‡ï¼Œæ‚¨å¯èƒ½æƒ³çŸ¥é“æ–°çš„BEA WebLogic Workshop 8.1æ˜¯å¦‚ä½•åª„å“æ‚¨çš„设计模å¼è€ƒè™‘的。首先,WebLogic Workshop是IDEåQŒå› æ¤å‰é¢æœ‰å…³IDEçš„ç« èŠ‚åŒæ ·é€‚用。对˜q™äº›è®¨è®ºæ„Ÿå…´‘£çš„Workshop的两个é¢å¤–æ–¹é¢æ˜¯æŽ§äšg和预实现的设计模å¼ã€?
  WebLogic Workshop Controls是打包功能的一¿U方法,å¯ä»¥è½ÀL¾ž®†å…¶åŒ…å«åˆîC‹É用Workshop IDE的应用程åºä¸ã€‚打包包括IDE必需的å¯è§†å…ƒç´ ã€è¿è¡Œæ—¶è¡ŒäØ“ã€è¦æ±‚çš„é…ç½®½{‰ç‰ã€‚控件是如何影å“设计模å¼åº”用的呢åQŸè¿˜è®°å¾—设计模å¼åœ¨å‰é¢åˆ’åˆ†äØ“isolated useå’Œbroad exposureå—?划分到isolated use¾cÈš„设计模å¼å¯èƒ½è¢«æ‰“åŒ…æˆ Workshop Controls。把设计模å¼ä½œäؓ控äšg打包å¯ä‹É Workshop IDE的其他用户共享实玎ͼŒä»Žè€Œé¿å…了æ¯ä¸€ä¸ªDeveloper/Project AntiPatternä¸çš„实现ã€?BR>  您å¯èƒ½æƒ³çŸ¥é“ä¸ÞZ»€ä¹ˆbroad exposure设计模å¼ä¸ÞZ»€ä¹ˆä¸å¯ä»¥ä½œäؓ控äšgå®žçŽ°ã€‚åŽŸå› æ˜¯broad exposure设计模å¼å¯ÆD‡´åˆ›å¾äº†è®¸å¤šå…¶ä»–类或者独立于其他应用½E‹åºã€‚è¿™¿U情况就ä¸é€‚åˆæŽ§äšgçš„å³æ’å³ç”¨æ–¹é¢ã€‚broad exposure设计模å¼çš„采用应当三æ€è€ŒåŽè¡Œï¼Œä¸€æ—¦é‡‡ç”¨å°±ä¸èƒ½è½ÀL˜“å–æ¶ˆã€‚è¿™äº›è¦æ±‚丽W¦åˆWebLogic Workshop Controlçš„ç›®æ ‡ã€?BR>  WebLogic Workshop˜q˜å…·æœ‰å¾ˆå¤šé¢„实现设计模å¼åQŒå¦‚Pageflow和用æˆähŽ¥å£ç»“构。在Workshop ä¸ï¼Œæ‚¨å¯ä»¥åˆ›å»ºJSP和定义Pageflowæ¥æŽ§åˆ¶Web应用½E‹åº™åµé¢ä¹‹é—´çš„定ä½ã€‚在˜q™ç§æƒ…况下,WebLogic Workshop使用‹¹è¡Œçš„Apache Struts 表现层框架。Workshop的这个方é¢ï¼ˆä½¿ç”¨ StrutsåQ‰æä¾›äº†ä¸€¿UModel-View-ControlleråQˆMVCåQ‰è®¾è®¡æ¨¡å¼å®žçŽŽÍ¼Œæ„味ç€ä¸ç”¨åˆ›å¾è‡ªå·±çš„MVC实现。Workshop包å«çš„其他功能很å¯èƒ½æ›¿ä»£æ‚¨è‡ªå·Þqš„设计模å¼å®žçŽ°ã€‚å°½½Ž¡ä¸€äº›è®¾è®¡æ¨¡å¼å®žçŽ°çš„å¼€ç›’å³ç”¨å¾ˆå¥½ï¼Œä½†æ˜¯åº”当验è¯ä¸ä»…实现而且实现创å¾çš„WebLogicä»ÖM½•ä¾ä»Žæ€§ä¹Ÿéžå¸¸åˆé€‚ã€?BR>
æˆåŠŸé‡‡ç”¨è®¾è®¡æ¨¡å¼çš„三个æ¥éª?/B>
  如何把设计模å¼çš„采用和日益ä͘q‘çš„æœ€åŽæœŸé™ã€ç´§¾~©çš„预算和很多公å¸çŽ°æœ‰çš„æœ‰é™å›¢é˜Ÿèµ„æºç›¸ç»“åˆï¼Ÿä»¥ä¸‹æ˜¯æˆåŠŸåˆ¶è®¢è®¾è®¡æ¨¡å¼çš„三个æ¥éª¤ã€?BR>
强大的通信和培�/B>
  许多机构拥有领先技术,å¯èƒ½æ£å¼é€šè¿‡äº†è®¾è®¡å¸ˆè®ºå›çš„è®ºè¯æˆ–è€…éžæ£å¼çš„公认专家。这些领先厂商将推广设计模å¼é‡‡ç”¨ä¸çš„å¼€æ”ùN€šä¿¡åQŒåƈž®†åŸ¹è®å¼€å‘具体设计模å¼çš„团队。通信应当跨开å‘团队和™å¹ç›®ä»¥ä¾¿é¢„先防æ¢é‡‡ç”¨ç«–井和多¿U惟一的实玎ͼˆè°¨è®°æ¯ä¸ªDeveloper/Project AntiPattern的实玎ͼ‰ã€‚培è®å¯ä»¥é‡‡ç”¨æ£å¼çš„internal lunch-and-learnsã€æ£å¼çš„internal class或者派一些员工å‚åŠ å¤–éƒ¨åŸ¹è®ã€‚è¿™äº›åŸ¹è®æ–¹å¼å°†ä¿ƒè¿›æ£ç¡®çš„设计模å¼åº”用程åºã€‚如果仅有枞®‘的观众能够å‚åŠ åŸ¹è®åQŒæœ€ä½³çš„候选äh是那些感觉适åˆåœ¨å›žæ¥åŽèƒ½å¤ŸåŸ¹è®å…¶åŒäº‹çš„人ã€?BR>
设计模å¼é‡‡ç”¨æŒ‡å¯¼
  设计模å¼å¯ç”¨äºŽä‹É™å¹ç›®å—益åQŒä½†æ˜¯ä»–们也å¯èƒ½å› äØ“è¯¯ç”¨è€Œå¯¹åº”ç”¨½E‹åºé€ æˆæŸå®³ã€‚应当鼓励采用他们,但是对其的采用应当å—到审阅和验è¯ã€‚设计模å¼å¯ä»¥åŒ…å«åœ¨è®¾è®¡å’Œå¼€å‘过½E‹ä¸ã€‚在ä»ÖM½•一¿U情况ä¸åQŒè®¾è®¡æ¨¡å¼çš„使用应当由审阅者确认和验è¯ã€‚在审阅˜q‡ç¨‹ä¸è¿˜å¯èƒ½ä¼šé‡åˆ°è¿™æ ïLš„æƒ…况åQŒé¢å¤–的设计模å¼ä¸é€‚用于最åˆåŒ…括的地方。å³ä½¿çŽ¯å¢ƒä¸æ²¡æœ‰˜q›è¡Œæ£å¼çš„审阅,˜q™ä¸€æ¥éª¤ä¹Ÿå¯ä»¥é€šè¿‡åŒäº‹å®¡é˜…或者团队讨论æ¥å®Œæˆã€‚这一æ¥éª¤ä¸çš„审阅者è¦ä¹ˆæ˜¯ä¸»è¦å›¢é˜Ÿçš„æˆå‘˜ï¼Œè¦ä¹ˆä¸Žä»–们å¾ç«‹å¼€æ”ùN€šä¿¡ã€?
  指导采用对于broad exposure¾cÕdˆ«çš„设计模å¼éžå¸¸å…³é”®ã€‚这些设计模å¼å…·æœ‰å¾ˆå¤šç›¸å…³çš„风险åQŒå› ä¸ÞZ»–们将创å¾ä¾èµ–性。这些ä¾èµ–性å¯èƒ½åœ¨ä¸€äº›å¯¹è±¡ç±»ä¸ï¼Œä¾‹å¦‚åQŒåªå·¥ä½œåœ¨æ›´åŠ å¹¿æ³›çš„DAO设计模å¼å®žçŽ°èŒƒå›´ä¸çš„æ•°æ®è®‰K—®å¯¹è±¡åQˆDAOåQ‰ã€æˆ–者跨应用½E‹åºè¾¹ç•ŒåQˆå¦‚使用Value Object设计模å¼åœ¨åº”用程åºå’Œåº”用½E‹åºå±‚ä¹‹é—´ä¼ è¾“æ•°æ®ï¼‰ã€‚这些设计模å¼ä¹Ÿå¯ä»¥ç”±é¡¹ç›®ä¸çš„å…¶ä»–äh或者ä¸åŒé¡¹ç›®çš„人实玎ͼŒè€Œä¸”å®žçŽ°åº”å½“é‡æ–°ä½¿ç”¨åQŒä¸åŒäºŽåˆ›å¾å¦ä¸€¿U独特的实现ã€?BR>
é‡ç”¨å®žçް,ä¸åªæ˜¯è®¾è®¡æ¨¡å¼?/B>
  åªè¦åœ¨åˆ›å»ø™‡ªå·Þqš„设计模å¼å®žçް䏿œ‰ä¸€å®šçš„æ»¡èƒöåQŒå›¢é˜Ÿå’Œå…¬å¸ž®±å¯ä»¥åœ¨é‡ç”¨å‘生在代ç 层æ—Óž¼Œè€Œä¸æ˜¯è®¾è®¡åˆ›æ„层时获得更多益处。ä‹Éä¼ä¸šèŽïL›Šçš„æœ€åˆè®¾è®¡æ¨¡å¼æ˜¯æ”¹è¿›çš„实现。但是,真æ£çš„ç›®æ ‡æ˜¯é‡ç”¨å®žçŽ°ã€‚é‡ç”¨å®žçް将坯D‡´åQša)å…¶ä»–å¯é‡ç”¨çš„¾c»ï¼ˆå–决于公共实玎ͼ‰åQ›b)¾~©çŸå¼€å‘æ—¶é—´å’Œé™ä½Žæˆæœ¬åQ›c)¾~©çŸ¾l´æŠ¤æ—‰™—´å’Œé™ä½Žæˆæœ¬ï¼›d)在应用程åºä¹‹é—´å’Œå†…部è½ÀL¾é›†æˆã€?BR>  ˜q™ç§é‡ç”¨å¯¹broad exposure设计模å¼éžå¸¸é‡è¦åQˆæœ‰æ—¶æ˜¯åŸºæœ¬çš„)。这些设计模å¼åˆ›å»ÞZº†å¤–部ä¾èµ–性(集戞®†ä»Žå…¬å…±å®žçްä¸å—益)或者äñ”生全部的自定义类库(如果有公共基¼‹€ž®†å¯é‡ç”¨åQ‰ã€‚isolated use设计模å¼ä¹Ÿå¯ä»¥ä»Žé‡ç”¨ä¸èŽ·ç›Šï¼Œä½†æ˜¯å¦‚æžœä»–ä»¬æ˜¯æ ¹æ®å…·ä½“情况定制的åQŒä»–们就éžå¸¸éš¾ä»¥é‡ç”¨ã€?BR>  有时您å¯èƒ½ä¼šé—®è‡ªå·±ï¼šâ€œå¦‚æžœé‡ç”¨æ¯”较好åQŒäؓ什么设计模å¼å’Œå¯ä»¥é‡ç”¨çš„实çŽîC¸å¯ä»¥ä¸€åŒåº”用呢åQŸâ€åœ¨æˆ‘们讨论设计模å¼å¦‚何使更多读者获益的时候æ‰ä¼šè®¨è®ø™¿™ä¸ªé—®é¢˜ã€‚如果å¯èƒ½ï¼Œå¦‚果已ç»é¢„定义了实现åQŒé‚£ä¹ˆè¾¾åˆ°å¹¿æ³›é€‚ç”¨æ€§è¿™ä¸ªç›®æ ‡å°±ä¼šéžå¸¸å›°éš¾ã€‚然而,一旦设计模å¼è¢«åº”用到特ŒDŠçš„问题域或者技术基¼‹€è®¾æ–½ä¸ï¼Œé‚£ä¹ˆž®±å¯ä»¥é‡ç”¨åœ¨è¯¥çŽ¯å¢ƒä¸äº§ç”Ÿçš„实现ã€?BR>
æž¶æž„ä¸çš„设计模å¼
  ˜q™çœ‹èµäh¥åƒæ˜¯ä¸€ä»¶å¯æ€•çš„ä»ÕdŠ¡åQŒéœ€è¦æŽŒæ¡è®¾è®¡æ¨¡å¼å¦‚何应用在实际情况ä¸ï¼Œå¦‚何构å¾ä¼˜è´¨çš„实玎ͼŒä»¥åŠå¦‚何促进é‡ç”¨å®žçŽ°ã€‚å®Œæˆè¯¥ä»ÕdŠ¡çš„æ–¹æ³•ä¹‹ä¸€ž®±æ˜¯åœ¨çŽ¯å¢ƒä¸å¼•入应用½E‹åºæž¶æž„ã€‚åº”ç”¨ç¨‹åºæž¶æž„æä¾›äº†åº”用½E‹åºéœ€è¦çš„¾l“æž„åQŒä»Žè€Œä‹Éå¼€å‘团队å¯ä»¥å…³æ³¨åº”用程åºçš„域逻辑。这包å«äº†å·²å®žçŽ°çš„è®¾è®¡æ¨¡å¼ã€‚除了é‡ç”¨è®¾è®¡æ¨¡å¼æ¦‚忉|ˆ–者å•个实çŽîC¹‹å¤–,å¯ä»¥åœ¨å¤šä¸ªé¡¹ç›®å’Œåº”用½E‹åºä¹‹é—´é‡ç”¨æž¶æž„。这¿U共享的公共实现¼‹®ä¿äº†å…¼å®ÒŽ€§ï¼Œòq¶äؓ开å‘å’Œ¾l´æŠ¤å¤šç§ä¸åŒçš„实现æä¾›äº†ä¸€¿Uä½Žæˆæœ¬æ›¿ä»£æ–ÒŽ¡ˆã€‚å…¼å®ÒŽ€§æä¾›äº†é‡æ–°ä½¿ç”¨éœ€è¦çš„æŠ€æœ¯åŸº¼‹€ã€‚没有èƒö够的½‹‡å¹…在这里深入讨论架构的其他é‡è¦å“è´¨åQŒå¦‚˜q行时监‹¹‹å’Œ½Ž¡ç†ã€å¯é…置应用½E‹åºé€»è¾‘和适应性行为ç‰ã€‚您å¯ä»¥ä»ŽCarnegie Mellon Software Engineering Institute (www.sei.cmu.edu/ata/ata_init.html) ä¸å¦ä¹ 到更多有关架构的知识ã€?BR>
¾l“æŸè¯?/B>
ã€€ã€€è®¾è®¡æ¨¡å¼æ˜¯ä¸€¿Uä×o人惊异的资æºåQŒåº”该ä‹Éç”¨ä»–ä»¥å¢žåŠ æ‚¨çš„ä¼˜åŠÑ€‚è™½ç„¶è®¾è®¡æ¨¡å¼æä¾›äº†å¯é‡ç”¨çš„æ¦‚念åQŒä½†æ˜¯é¢ä¸´çš„æŒ‘战是决定ä‹É用哪一¿U设计模å¼å’Œè‡´åŠ›äºŽå¯ä»¥é‡ç”¨çš„实现。通过了解采用设计模å¼ä¸ä¼šäº§ç”Ÿçš„风险,ž®±å¯ä»¥åœ¨¾l§ç®‹å¦ä¹ å’Œå®žçŽ°æ›´å¤šè®¾è®¡æ¨¡å¼æ—¶é¿å…风险ã€?BR>  按照本文概述的æ¥éª¤ä¼šäº§ç”Ÿä¸€ä¸ªæµ½E‹ï¼Œç”¨äºŽåœ¨å›¢é˜Ÿå’Œæœºæž„䏿ލòq¿æˆåŠŸçš„è®¾è®¡æ¨¡å¼é‡‡ç”¨ã€?BR>
å‚考资æ–?/B>
关于作è€?BR>Walter Hurst是Wakesoftçš„å¥ åŸÞZhå’Œé¦–å¸æŠ€æœ¯å®˜ã€‚ä»–åœ¨å°–ç«¯æŠ€æœ¯é¢†åŸŸå·¥ä½œäº†å年。æˆç«‹Wakesoft 之å‰åQŒWalter是一å独立咨询师åQŒä¸»è¦ä‹É用Wakesoft技术的早期版本为客æˆäh供互è”网解决æ–ÒŽ¡ˆã€‚在æ¤ä¹‹å‰ï¼ŒWalter是Xpedior的技术设计师åQŒè´Ÿè´£é¢†å¯¼internal effortså¼€å‘实现在多个客户™å¹ç›®ä¸çš„应用½E‹åºæž¶æž„ã€‚åœ¨åŠ å…¥Xpedior之å‰åQŒWalter是Andersen Consulting?Center战略技术方é¢çš„高çñ”咨询师。在AndersenåQŒWalter为多家胦å¯?00客户领导Enterprise™å¹ç›®ã€‚Walteråœ¨å¯†æ‡æ ¹å·žå¤§å¦èŽ·å¾—è®¡½Ž—机工程å¦å£«å¦ä½ã€?/P>