一ã€ä¹Œåˆä¹‹ä¼—ï¼Œå¼ºæƒæ”¿æ²»åQˆæ–°æ‰‹ï¼‰
  很多新手都会(x¨¬)¾l历˜q™æ ·çš„过½E‹ï¼Œæ–°ç»„建的团队冲çªä¸æ–åQŒå¤§å®¶å¯¹å½“å„¿Uåˆ¶åº¦æŽªæ–½ï¼ŒæŠ¥ä»¥åæ„Ÿã€‚䨓(f¨´)ä¿è¯æ‰§è¡ŒåŠ›å’Œ™å¹ç›®æˆåŠŸåQŒé¡¹ç›®ç»ç†ä¼š(x¨¬)选择强æƒåŽ‹åˆ¶åQŒå°¤å…¶æ˜¯æŠ€æœ¯æ¯”较好的项目ç»ç†ã€‚大æŠëŠš„逻辑æ˜?#8220;我是è€å¤§òq¶ä¸”我资深,è¦å¬æˆ‘çš„”。最¾lˆçš„¾l“果是大家对™å¹ç›®ç›®æ ‡å·²ç»å®Œå…¨ä¸æ„Ÿå…´è¶£åQŒä¸€äº›å†²½H凾U§åˆ°ä¸ªäh情感冲çªåQŒé¡¹ç›®ç»ç†å·¦å³çªå‡»ï¼Œä¸Šè¹¿ä¸‹èŸ©åQŒç”šæ˜¯è¾›è‹¦ï¼Œå¿™ç¢ŒåQŒç¡®å¾—ä¸åˆ°å¤§å®¶çš„认å¯ã€?/p>
ã€€ã€€æ¤æ—¶çš„项目ç»ç†è‡³ž®‘需è¦åšåˆîC¸¤ç‚¹ï¼Œæ‰æœ‰å¯èƒ½˜q›å…¥ä¸‹ä¸ªé˜¶æ®µåQŒç”¨æ°å…‹éŸ¦å°”奇的两å¥è¯æ¦‚况:(x¨¬)
  1ã€?#8220;åœ¨ä½ æˆäØ“(f¨´)领导以å‰åQŒæˆåŠŸåªåŒè‡ªå·Þqš„æˆé•¿æœ‰å…³ã€‚å½“ä½ æˆä¸ºé¢†å¯ég»¥åŽï¼ŒæˆåŠŸéƒ½åŒåˆ«ähçš„æˆé•¿æœ‰å…Ÿë€?#8221;
  2ã€?#8220;世界上的æ¯ä¸€ä¸ªäh都想得到å‘言æƒå’Œž®Šä¸¥åQŒè€Œä¸”也应当得åˆ?#8221;
  所è°?#8220;å‘言æ?#8221;åQŒæ˜¯æŒ‡äh们希望有æœÞZ¼š(x¨¬)è¯´å‡ºä»–ä»¬çš„æ€æƒ³åQŒæ‹¥æœ‰è‡ªå·Þqš„观点ã€çœ‹æ³•ã€èŽ·å¾—è¢«å€‘Ö¬çš„æ„Ÿå—ï¼Œæ— è®ºä»–ä»¬çš„å›½¾cã€æ€§åˆ«ã€å¹´é¾„或者文化背景如何ã€?/p>
  所è°?#8220;ž®Šä¸¥”åQŒæ˜¯æŒ‡äh们本能地和自å‘地希望ç”׃ºŽè‡ªå·±çš?a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;">工作ã€åŠªåŠ›å’Œä¸ªæ€§è€Œå¾—åˆ°å°Šé‡ã€?/p>
  ˜q™ä¸ªé˜¶æ®µä¹‹æ‰€ä»¥å‘½å䨓(f¨´)乌åˆä¹‹ä¼—åQŒæ˜¯å› 䨓(f¨´)å¤§å®¶å¯¹å›¢é˜Ÿæ ¹æœ¬æ²¡æœ‰å½’å±žæ„ŸåQŒç”šè‡›_ŽŒå¼ƒå›¢é˜Ÿï¼ŒæœŸæœ›å›¢é˜Ÿå¾—åˆ°è§£æ•£åQŒæˆ–è€…å›¢é˜Ÿç›®æ ‡è¾¾æˆæ—¶åQŒåƈ没有å–å¾—æˆå°±çš„æ„Ÿè§‰ï¼Œè€Œæ˜¯æœ‰ç»ˆäºŽç†¬˜q‡æ¥çš„æ„Ÿè§¦ã€?/p>
  二ã€å°Šé‡ï¼Œæ°‘主½C¾ä¼š(x¨¬) åQˆè€æ‰‹åQ?/strong>
  在ç»åŽ†è¿‡æŒ«æŠ˜æˆ–æ˜¯è€å‰è¾ˆä»¬çš„谆谆教导åŽåQŒæ–°æ‰‹å¾€å¾€éƒ½èƒ½˜q›å…¥˜q™ä¸ªé˜¶æ®µã€‚当然有些厉害的人有时也ä¼?x¨¬)自å·ÞpŸ©åˆ°è¿™ä¸ªé˜¶ŒDüc(di¨£n)€‚但是这个阶ŒDµé‡Œçš„ähåQŒä¹Ÿæœ‰é«˜ä¸‹ä¹‹åˆ†ã€‚在˜q™ä¸ªé˜¶æ®µçš„ähåQŒå¾€å¾€å¯ä»¥å¸¦å›¢é˜Ÿæ—¶åQŒå¾€å¾€å¯ä»¥åšåˆ°åQ?/p>
  1ã€å°Šé‡ï¼Œa€è·¯å¼€æ˜?/p>
ã€€ã€€ä¸æŠŠäººå½“åšæœºå™¨ã€‚制定计划,措施æ—Óž¼Œéƒ½å¯ä»¥å¾æ±‚的大家æ„è§åQŒå½“然计划定下æ¥åŽï¼Œæ‰§è¡Œæ—¶æ˜¯ä¸èƒ½å«ç³Šçš„ã€?/p>
  2ã€å–„用ähæ‰ï¼ŒåŸ¹å…»äººæ‰
ã€€ã€€å›¢é˜Ÿé‡Œæœ‰äººæ‰æ—Óž¼Œä¼?x¨¬)ä‹É用授æƒç‰æ–¹å¼è°ƒç”¨˜q™äº›äººçš„¿U¯æžæ€§ï¼Œè€Œä¸æ˜¯å¹¼½Ešçš„æ‰“压åQŒåƈ且在团队里没有ähæ‰æ—¶åQŒèƒ½å¤Ÿç§¯æžé€‰æ‹”备选äh员,òq¶ç»™äºˆé”»ç‚¼æœºä¼?/p>
  3ã€åˆ†äº«è£èª?/p>
  ˜q™ä¸ªé˜¶æ®µçš„项目ç»ç†ï¼Œåœ¨äº¤‹¹ä¸åQŒä¼š(x¨¬)摈弃æŽ?#8220;æˆ‘æ€Žä¹ˆæ øP¼Œæ€Žä¹ˆæ ?#8221;åQŒå¤šä½¿ç”¨“我们åQŒæˆ‘们团队怎么æ ?#8221;åQŒå°¤å…¶æ˜¯åœ¨é¢å¯¹è¡¨æ‰¬å’Œè£èª‰æ—¶ã€‚在™å¹ç›®¾l„å†…ä¹Ÿæƒ³æ–¹è®¾æ³•æ ‘(w¨¨i)ç«‹æ¦œæ øP¼Œòq¶ä¸”éžå¸¸æ„¿æ„˜q™äº›äºø™¢«è‡ªå·±çš„上¾U§æ‰€èŽïL(f¨¥ng)Ÿ¥åQŒæ„¿æ„䨓(f¨´)˜q™äº›äºø™°‹ä¸ªå¥½å‰ç¨‹ã€?/p>
  4ã€å¦è¯?/p>
  å¦è¯šæ˜¯ç›¸å¤„的长远之计åQŒè€Œå¿½æ‚(zh¨¨n) ,ç”Õd¤§é¥ÆD¿™äº›æ‰‹ŒDµåªèƒ½çŸæœŸæ•ˆåº”,òq¶åœ¨é•¿æœŸä¸Šè®©è‡ªå·±çš„ähæ ¼å—æŸã€‚关于这炚w¡¹ç›®ç»ç†å¤§å¤šåšå¾—程度ä¸ä¸€åQŒæœ‰æ—¶è¯´å‡ÞZ¸€äº›ä¸å¼€å¿ƒçš„事,是需è¦å‹‡æ°”çš„åQŒä¾‹å¦‚在¾l©æ•ˆæ²Ÿé€šæ—¶ã€‚但是这个阶ŒD늚„™å¹ç›®¾lç†éƒ½äº†è§£å®ƒé‡è¦æ€§ã€?/p>
  5ã€å›¢é˜Ÿä¿¡æ¯é€æ˜Ž
ã€€ã€€åªæœ‰ä¿¡æ¯‘›_¤Ÿé€æ˜ŽåQŒå¤§å®¶æ‰èƒ½å¤Ÿä¸ºé¡¹ç›®å‡ºè°‹åˆ’½{–,æ‰èƒ½æœ‰å¦è¯šæ²Ÿé€šçš„基础åQŒå¤§å®¶æ‰èƒ½å¯¹™å¹ç›®å½’属ã€?#8220;åž„æ–ä¿¡æ¯åQŒä»¥æ˜„¡¤ºè‡ªå·±é¢†å¯¼çš„地ä½?#8221;æ˜¯æ„šè ¢çš„äººæ‰ä¼?x¨¬)干的事æ?/p>
  ˜q™ä¸ªé˜¶æ®µä¹‹æ‰€ä»¥å‘½å䨓(f¨´)民主½C¾ä¼š(x¨¬)åQŒè¿™ä¸ªé˜¶ŒD늚„价倯D§‚是:(x¨¬)民主计划åQŒä¸¥æ ¼æ‰§è¡Œï¼Œæœ‰ä»˜å‡ºæœ‰å›žæŠ¥åQŒé›†ä½“è£èª‰ã€‚第一个阶ŒDµåˆ°½W¬äºŒä¸ªé˜¶ŒDµå¯èƒ½éœ€è¦æ—¶é—´çš„¿U¯ç¯åQŒè€Œç¬¬äºŒä¸ªé˜¶æ®µåˆ°ç¬¬ä¸‰ä¸ªé˜¶æ®µåQŒæœ‰æ—¶å´å¯æœ›è€Œä¸å¯è¾¾ã€?/p>
ã€€ã€€ä¸‰ã€æ¿€æƒ…,燃烧军团 åQˆé«˜æ‰‹ï¼‰
  ‹È€æƒ…团队的充分必è¦å‰ææ˜¯ï¼Œå›¢é˜Ÿè´Ÿè´£äººæ˜¯éžå¸¸æœ‰æ¿€æƒ…的。这点很关键åQŒä¸€ä¸ªæ‰“工者心æ€ï¼Œæ²¡æœ‰æŠŠå·¥ä½œå½“æˆè‡ªå·×ƒº‹ä¸šç»è¥çš„人是ä¸ä¼š(x¨¬)带出有长久激情的团队。检视的原ç†åQ?#8220;çœ‹ä¸€ä¸‹å¤§å®¶æ˜¯ä¸æ˜¯ä¸ÞZº†åŒä¸€ä¸ªæ¢¦æƒŒ™€Œèµ°åˆîC¸€èµïL(f¨¥ng)š„”
  è¦è¾¾æˆå›¢é˜Ÿæ¿€æƒ…,臛_°‘å…·å¤‡ä»¥ä¸‹å‡ ç‚¹åQ?/p>
  1ã€è€æ¿é£Žæ ¼åQŒè€æ¿è¦æœ‰åˆ†äínæˆåŠŸçš„å†³å¿ƒï¼Œä¾‹å¦‚åQšè‚¡¼œ¨ï¼ŒæœŸæƒ‹È€åŠ?/p>
  2ã€ä¼ä¸šæ–‡åŒ–,ä¼ä¸šè¦æœ‰æ–‡åŒ–宣扬集体奋斗的精¼œžï¼Œä¼ä¸šçš„ä‹É命äh(hu¨¢n)倯D§‚能够深入人心åQŒå¾—到强烈å“åº”ï¼Œæ¤æ—¶ä¼ä¸šçš„创新精¼œžï¼Œž®†æ˜¯ä»Žå†…而外的,从下而上的,大家集体æ€è€ƒï¼Œé›†ä½“˜q›æ¥åQŒé›†ä½“创新ã€?/p>
  3ã€æœ‰‹È€æƒ…çš„ä¸å±‚åQŒå…¬å怸层是ä¼ä¸šçš„下¹ç ¥æŸ±ï¼Œå¦‚æžœæ¯ä¸ªä¸å±‚是有‹È€æƒ…çš„åQŒæ‰©æ•£å¼€æ¥çš„å½±å“力是很大的,å之åQŒåˆ™‹È€æƒ…å®¹æ˜“å˜æˆå£å—÷€?/p>
  ˜q™é‡Œå…¸åž‹çš„æ¡ˆä¾‹æ˜¯sony的没è½ï¼Œä»Žäº•深大的激情军团的消失åQŒäº•深大倡导”工作ä¿è¯æœ¬èínž®±æ˜¯ä¸€¿U强有力的激åŠ?#8220;åQŒæŠŠ˜q™ç§ç†å¿µèƒ½å¤Ÿæ·±æ¤å…¬å¸æ˜¯å¤šä¹ˆå¯æ€•,‹È€æƒ…å¯ä»¥åˆ›é€ 出很多奇迹ã€?/p>
  ¾U¦ç¿°·¿U‘特说过“å¦‚æžœä½ æƒ³å»ºé€ ä¸€è‰˜èˆ¹åQŒé¦–å…ˆè¦åšçš„䏿˜¯åŽ»é‡‡é›†æœ¨æã€åŠ å·¥æœ¨æ¿å’Œåˆ†æ´¾å·¥ä½œåQŒè€Œåº”该去唤è“väºÞZ»¬å¯¹å¹¿é˜”æ— åž å¤§‹¹ïL(f¨¥ng)š„å‘å¾€ã€?#8220; ½Ž¡ç†è€…的本质是获得追éšçš„人,一个ä¼ä¸šï¼Œä¸€ä¸ªå›¢é˜Ÿå¦‚果能够拥有一æ‰ÒŽ(gu¨©)„¿æ„追éšå…¬å¸æˆé•¿çš„人,所产生的æ£å‘èƒ½é‡æ˜¯æ— 比巨大的ã€?/p>
  ˜q™ç§å¢ƒç•Œçš„达到需è¦å¤šæ–¹å› ç´ çš„ä¿ƒåˆåQŒé¢‡ä¼égºŽæ¦ä¾ 里的天ähåˆä¸€åQŒæ¿€æƒ…团队的½Ž¡ç†ž®†å分简å•ï¼Œä¿æŠ¤˜q™ç§‹È€æƒ…,员工ä¼?x¨¬)很自主的进行自我管ç†ã€?/p>
  当然实际工作ä¸ï¼Œä»¥ä¸Šæ¯ä¸ªé˜¶æ®µä¸å¤ç«‹å˜åœ¨ï¼Œå¯èƒ½ä¼?x¨¬)å˜åœ¨ä¸€äº›é˜¶ŒD늚„ä¸é—´ä½“ã€?/p>
相关链接åQ?/p>
™å¹ç›®å®žæˆ˜½W”记之一åQšé«˜æ•ˆä¼š(x¨¬)议的¾l„织æ–ÒŽ(gu¨©)³•
™å¹ç›®å®žæˆ˜½W”记之二åQšé£Žé™©ç®¡ç?/a>
™å¹ç›®å®žæˆ˜½W”记之三åQšæ—¶é—´ä¼°½Ž—çš„ä¸‰æ¥æ›?/a>
™å¹ç›®å®žæˆ˜½W”记之四åQšå›¢é˜Ÿå¾è®¾ï¼ˆž®Šé‡åQ?/a>
™å¹ç›®å®žæˆ˜½W”记之五åQšé‡Œ½E‹ç¢‘½Ž¡ç†
ä»£ç†æ¨¡å¼æ˜¯æˆ‘们比较常用的设计模å¼ä¹‹ä¸€ã€‚其䏿–°æ€æƒ³æ˜¯äØ“(f¨´)了æä¾›é¢å¤–çš„å¤„ç†æˆ–者ä¸åŒçš„æ“ä½œè€Œåœ¨å®žé™…å¯¹è±¡ä¸Žè°ƒç”¨è€…ä¹‹é—´æ’入一个代ç†å¯¹è±¡ã€‚这些é¢å¤–çš„æ“作通常需è¦ä¸Žå®žé™…对象˜q›è¡Œé€šä¿¡åQŒä»£ç†æ¨¡å¼ä¸€èˆ¬æ¶‰å?qi¨¢ng)到的角色有åQ?nbsp;
抽象角色åQšå£°æ˜ŽçœŸå®žå¯¹è±¡å’Œä»£ç†å¯¹è±¡çš„å…±åŒæŽ¥å£ï¼›
代ç†è§’色åQšä»£ç†å¯¹è±¡è§’è‰²å†…éƒ¨å«æœ‰å¯¹çœŸå®žå¯¹è±¡çš„引用,从而å¯ä»¥æ“ä½œçœŸå®žå¯¹è±¡ï¼ŒåŒæ—¶ä»£ç†å¯¹è±¡æä¾›ä¸ŽçœŸå®žå¯¹è±¡ç›¸åŒçš„æŽ¥å£ä»¥ä¾¿åœ¨ä“Qä½•æ—¶åˆ»éƒ½èƒ½ä»£æ›¿çœŸå®žå¯¹è±¡ã€‚åŒæ—Óž¼Œä»£ç†å¯¹è±¡å¯ä»¥åœ¨æ‰§è¡ŒçœŸå®žå¯¹è±¡æ“作时åQŒé™„åŠ å…¶ä»–çš„æ“作åQŒç›¸å½“于对真实对象进行å°è£…ã€?nbsp;
真实角色åQšä»£ç†è§’色所代表的真实对象,是我们最¾lˆè¦å¼•用的对象ã€?
以下以å‘逿¶ˆæ¯äØ“(f¨´)例æ¥è¯´æ˜Žä¸€ä¸ªç®€å•çš„ä»£ç†æ¨¡å¼çš„基本实玎ͼš(x¨¬)
首先明确目的åQšæœ‰ä¸€æ¡æ¶ˆæ¯ï¼Œéœ€è¦æŠŠ˜q™ä¸ªæ¶ˆæ¯å‘é€å‡ºåŽ»ï¼Œæ ÒŽ(gu¨©)®˜q™ä¸ªç›®çš„定义对应接å£MessageHandler。需è¦çš„é™„åŠ æ“作åQšå‡è®ùNœ€è¦éªŒè¯æ¶ˆæ¯çš„长度ä¸èƒ½‘…过指定长度òq¶ä¸”ä¸èƒ½ä¸ºç©ºåQŒåƈ且我们需è¦ç»Ÿè®¡ç›¸å…³ä¿¡æ¯å‘é€åˆ°‹Æ¡æ•°åQŒè¶…˜q‡æŒ‡å®šçš„‹Æ¡æ•°æˆ‘们需è¦è¾“凸™¦æŠ¥ã€‚æˆ‘ä»¬é€šè¿‡ä»£ç†æ¨¡å¼æ¥å®žçŽ°è¿™ä¸ªé™„åŠ çš„æ“作。下é¢äØ“(f¨´)对应的类关系囑֊(qi¨¢ng)½CÞZ¾‹ä»£ç ã€?/p>
在例å䏿ˆ‘们å¯ä»¥æ–¹ä¾¿çš„在消æ¯å‘é€è¿‡½E‹ä¸æ·ÕdŠ å„ç§éœ€è¦çš„é™„åŠ å¤„ç†æ–¹å¼åQŒä¹Ÿèƒ½æ–¹ä¾¿çš„æ›¿æ¢æ¶ˆæ¯çš„å¤„ç†æ–¹å¼ï¼Œå¦‚将通过Emailå‘逿¶ˆæ¯æ›¿æ¢äØ“(f¨´)通过çŸä¿¡å‘逿¶ˆæ¯ï¼Œè€Œè°ƒç”¨æ–¹ä¸ä¼š(x¨¬)æœ‰ä¸æ¯«å¯Ÿè§‰ï¼åœ¨ä“Qä½•ä½ æƒŒ™¦ž®†ä¸€äº›é¢å¤–æ“作分¼›Õdˆ°å…·ä½“对象之外åQŒç‰¹åˆ«æ˜¯å¸Œæœ›èƒ½å¤Ÿå¾ˆå®¹æ˜“åšå‡ÞZ¿®æ”¹ï¼Œæˆ–者想在具体对象的æ–ÒŽ(gu¨©)³•æ‰§è¡Œå‰æ’入一些é¢å¤–æ“作的时候,代熞®±æ˜¾å¾—å分有用ï¼
代熾l“构如下图所½C?/p>
以通过代售点买ç«èžR¼œ¨äØ“(f¨´)例,代ç 实现如下åQ?/p>
//æä¾›ä¹°ç¥¨çš„公共接å?br />interface Passenger {
public void buyTicket();
}
//乘客实体
public class RealPassenger implements Passenger {
@Override
public void buyTicket() {
// TODO Auto-generated method stub
System.out.print("è´ä¹°äº†ç«è½¦ç¥¨");
}
}
//代售�br />public class Proxy implements Passenger {
Passenger passenger;
public Proxy(Passenger p) {
this.passenger = p;
}
@Override
public void buyTicket() {
// TODO Auto-generated method stub
System.out.println("通过代售�);
passenger.buyTicket();
}
}
//‹¹‹è¯•¾c?br />public class Client {
public static void main(String[] args) {
Passenger passenger = new RealPassenger();
Passenger proxy = new Proxy(passenger);
proxy.buyTicket();
}
}
输出¾l“æžœåQ?br />通过代售ç‚?br />è´ä¹°äº†ç«è½¦ç¥¨
ä»?上的也å¯å«åšé™æ€ä»£ç†ï¼Œæ˜¯äØ“(f¨´)äº†åŒºåˆ«ä»£ç†æ¨¡å¼åœ¨Javaä¸çš„å¦ä¸€¿U实çŽ?#8212;—动æ€ä»£ç†ã€?/p>
接下æ¥ä¼š(x¨¬)为大家带æ¥åЍæ€ä»£ç?br />
å•例模弼‹®ä¿æŸä¸ª¾cÕdªæœ‰ä¸€ä¸ªå®žä¾‹ï¼Œè€Œä¸”è‡ªè¡Œå®žä¾‹åŒ–åÆˆå‘æ•´ä¸ªç³»¾lŸæä¾›è¿™ä¸ªå®žä¾‹ã€?/span>在计½Ž—机¾pÈ»Ÿä¸ï¼Œ¾U¿ç¨‹æ± ã€ç¼“å˜ã€æ—¥å¿—对象ã€å¯¹è¯æ¡†ã€æ‰“å°æœºã€æ˜¾å¡çš„驱动½E‹åºå¯¹è±¡å¸¸è¢«è®¾è®¡æˆå•例。这些应用都或多或少å…ähœ‰èµ„æº½Ž¡ç†å™¨çš„功能。æ¯å°è®¡½Ž—机å¯ä»¥æœ‰è‹¥òq²ä¸ªæ‰“å°æœºï¼Œä½†åªèƒ½æœ‰ä¸€ä¸?/span>Printer SpooleråQŒä»¥é¿å…两个打å°ä½œä¸šåŒæ—¶è¾“å‡ºåˆ°æ‰“å°æœºä¸ã€‚æ¯å°è®¡½Ž—机å¯ä»¥æœ‰è‹¥òq²é€šä¿¡ç«¯å£åQŒç³»¾lŸåº”当集ä¸ç®¡ç†è¿™äº›é€šä¿¡ç«¯å£åQŒä»¥é¿å…一个通信端å£åŒæ—¶è¢«ä¸¤ä¸ªè¯·æ±‚åŒæ—¶è°ƒç”¨ã€‚æ€ÖM¹‹åQŒé€‰æ‹©å•例模弞®±æ˜¯ä¸ÞZº†é¿å…ä¸ä¸€è‡´çжæ€ï¼Œé¿å…政出多头ã€?/span>
首先看一个ç»å…¸çš„å•例实现ã€?br />
public class Singleton {
private static Singleton uniqueInstance = null;
private Singleton() {
// Exists only to defeat instantiation.
}
public static Singleton getInstance() {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
// Other methods...
}
Singleton通过ž®†æž„é€ æ–¹æ³•é™å®šäØ“(f¨´)privateé¿å…了类在外部被实例化,在åŒä¸€ä¸ªè™šæ‹ŸæœºèŒƒå›´å†…,Singleton的唯一实例åªèƒ½é€šè¿‡getInstance()æ–ÒŽ(gu¨©)³•讉K—®ã€‚(事实上,通过Javaåå°„æœºåˆ¶æ˜¯èƒ½å¤Ÿå®žä¾‹åŒ–æž„é€ æ–¹æ³•äØ“(f¨´)private的类的,那基本上ä¼?x¨¬)ä‹É所有的Javaå•例实现失效ã€?/strong>æ¤é—®é¢˜åœ¨æ¤å¤„ä¸åšè®¨è®ºåQŒå§‘ä¸”æŽ©è€³ç›—é“ƒåœ°è®¤äØ“(f¨´)å射机制ä¸å˜åœ¨ã€‚)
但是以上实现没有考虑¾U¿ç¨‹å®‰å…¨é—®é¢˜ã€‚所谓线½E‹å®‰å…¨æ˜¯æŒ‡ï¼š(x¨¬)å¦‚æžœä½ çš„ä»£ç æ‰€åœ¨çš„˜q›ç¨‹ä¸æœ‰å¤šä¸ª¾U¿ç¨‹åœ¨åŒæ—¶è¿è¡Œï¼Œè€Œè¿™äº›çº¿½E‹å¯èƒ½ä¼š(x¨¬)åŒæ—¶˜q行˜q™æ®µä»£ç 。如果毋ơè¿è¡Œç»“果和å•线½E‹è¿è¡Œçš„¾l“果是一æ ïL(f¨¥ng)š„åQŒè€Œä¸”å…¶ä»–çš„å˜é‡çš„å€ég¹Ÿå’Œé¢„期的是一æ ïL(f¨¥ng)š„åQŒå°±æ˜¯çº¿½E‹å®‰å…¨çš„。或者说åQšä¸€ä¸ªç±»æˆ–è€…ç¨‹åºæ‰€æä¾›çš„æŽ¥å£å¯¹äºŽçº¿½E‹æ¥è¯´æ˜¯åŽŸåæ“ä½œæˆ–è€…å¤šä¸ªçº¿½E‹ä¹‹é—´çš„切æ¢ä¸ä¼š(x¨¬)坯D‡´è¯¥æŽ¥å£çš„æ‰§è¡Œ¾l“æžœå˜åœ¨äºŒä¹‰æ€?/span>,也就是说我们ä¸ç”¨è€ƒè™‘åŒæ¥çš„é—®é¢˜ã€‚æ˜¾ç„¶ä»¥ä¸Šå®žçŽ°åÆˆä¸æ»¡‘³çº¿½E‹å®‰å…¨çš„è¦æ±‚åQŒåœ¨òq¶å‘环境下很å¯èƒ½å‡ºçŽ°å¤šä¸ªSingleton实例ã€?br />
˜q行¾l“æžœåQ?br style="margin: 0px; padding: 0px;" />  奶娃
  奶娃
  output message 奶娃
  output message 奶娃
  创å¾çš„æ˜¯åŒä¸€ä¸?span style="color: #000000; font-family: 宋体; line-height: 20.066667556762695px; text-indent: 28px;">屌ä¸
实例
¾l“论åQšç”±¾l“æžœå¯ä»¥å¾—知å•例模å¼ä¸ÞZ¸€ä¸ªé¢å‘对象的应用½E‹åºæä¾›äº†å¯¹è±¡æƒŸä¸€çš„访问点åQŒä¸½Ž¡å®ƒå®žçް何ç§åŠŸèƒ½åQ?span style="margin: 0px; padding: 0px; color: #800000;">整个应用½E‹åºéƒ½ä¼š(x¨¬)åŒäín一个实例对è±?/span>ã€?/span>
1.饿汉å¼å•例类
Bridge模å¼çš„æ¦‚å¿?/strong>
Bridge æ¨¡å¼æ˜¯æž„é€ åž‹çš„è®¾è®¡æ¨¡å¼ä¹‹ä¸€ã€‚Bridge模å¼åŸÞZºŽ¾cÈš„最ž®è®¾è®¡åŽŸåˆ™ï¼Œé€šè¿‡ä½¿ç”¨ž®è£…åQŒèšåˆä»¥å?qi¨¢ng)ç‘ô承ç‰è¡ŒäØ?f¨´)æ¥è®©ä¸åŒçš„类承担ä¸åŒçš„责仅R€‚它的主è¦ç‰¹ç‚ÒŽ(gu¨©)˜¯æŠŠæŠ½è±¡ï¼ˆabstractionåQ‰ä¸Žè¡ŒäØ“(f¨´)实现åQˆimplementationåQ‰åˆ†¼›Õd¼€æ¥ï¼Œä»Žè€Œå¯ä»¥ä¿æŒå„部分的独立性以å?qi¨¢ng)应对它们的功能扩展ã€?br />
Bridge模å¼çš„应用场æ™?/strong>
é¢å‘对象的程åºè®¾è®¡ï¼ˆOOPåQ‰é‡Œæœ‰ç±»¾l§æ‰¿åQˆå¾cÈ‘ô承父¾c»ï¼‰çš„æ¦‚å¿µï¼Œå¦‚æžœä¸€ä¸ªç±»æˆ–æŽ¥å£æœ‰å¤šä¸ªå…·ä½“实现åç±»åQŒå¦‚果这些å¾cÕd…·æœ‰ä»¥ä¸‹ç‰¹æ€§ï¼š(x¨¬)
- å˜åœ¨ç›¸å¯¹òq¶åˆ—çš„å¾cÕd±žæ€§ã€?br />- å˜åœ¨æ¦‚念上的交å‰ã€?br />- å¯å˜æ€§ã€?br />我们ž®±å¯ä»¥ç”¨Bridgeæ¨¡å¼æ¥å¯¹å…¶è¿›è¡ŒæŠ½è±¡ä¸Žå…·ä½“åQŒå¯¹ç›¸å…³¾c»è¿›è¡Œé‡æž„ã€?br />
ä¸ÞZº†å®ÒŽ(gu¨©)˜“ç†è§£åQŒæˆ‘们ä‹D例说明一下,比如屌ä¸åQˆDiaoSiåQ‰ï¼Œå‡è®¾æœ?个å¾c»ï¼Œç”·å±Œä¸ç±»åQˆManDiaoSiåQ‰ä¸Žå¥›_±Œä¸ç±»åQˆWomanDiaoåQ‰ï¼Œå®ƒä»¬æœ‰[½IähŒ«çŸ®]˜q™ä¸ªåŠ¨ä½œè¡ŒäØ“(f¨´)åQŒé€šè¿‡ä¸åŒ½IähŒ«çŸ®ç‰¹å¾çš„讄¡½®åQŒå¯ä»¥å°†å®ƒä»¬è®„¡½®ä¸ºæ¯”如䨓(f¨´)æ‹¥æœ‰é»‘æœ¨è€³ç”·å±Œä¸æˆ–(拥有撸管王的奛_±Œä¸ï¼‰åQŒå’Œæ‹¥æœ‰ç´«æœ¨è€³ç”·å±Œä¸æˆ–(拥有撸神的女屌ä¸åQ‰çš„å„ç§å±Œä¸ã€?br />˜q™æ ·åQŒä¸½Ž¡æ˜¯é»‘木耳男屌丘q˜æ˜¯ç´«æœ¨è€³ç”·å±Œä¸åQŒåˆæˆ–是有撸½Ž¡çŽ‹çš„å¥³å±Œä¸˜q˜æ˜¯æœ‰æ’¸¼œžçš„奛_±Œä¸ï¼Œå®ƒä»¬éƒ½å¯ä»¥æ˜¯å±Œä¸¾cÈš„åç±»åQŒè€Œä¸”åQ?br />- å˜åœ¨ç›¸å¯¹òq¶åˆ—çš„å¾cÕd±žæ€§ã€‚屌ä¸çš„¿Uç±»åQŒä¸Žå±Œä¸½IähŒ«çŸ®çš„è§„æ ¼æ˜¯å±Œä¸çš„2ä¸ªåÆˆåˆ—çš„å±žæ€§ï¼Œæ²¡æœ‰æ¦‚å¿µä¸Šçš„é‡å¤ã€?br />- å˜åœ¨æ¦‚念上的交å‰ã€‚ä¸½Ž¡æ˜¯ç”·å±Œä¸è¿˜æ˜¯å¥³å±Œä¸åQŒéƒ½æ˜¯ç©·æŒ«çŸ®åQŒé»‘½I·ä¸‘的屌ä¸ã€?br />- å¯å˜æ€§ã€‚除了男屌ä¸åQŒå¥³å±Œä¸ä¹‹å¤–åQŒå¯èƒ½è¿˜æœ‰äh妖屌ä¸ï¼›é™¤äº†æœ‰é»‘木耻I¼ˆæ’¸ç®¡çŽ‹ï¼‰ä¸Žç‚÷木耻I¼ˆæ’¸ç¥žåQ‰ç‰¹å¾çš„屌ä¸ä¹‹å¤–åQŒè¿˜å¯èƒ½æœ‰ç‚÷黑木耻I¼ˆæ’¸åœ£åQ‰çš„屌丽{‰ç‰ã€?/p>
˜q™æ ·ä¸€æ¥ï¼Œæˆ‘们怎么æ¥è®¾è®¡å±Œä¸ç±»å‘¢ï¼Ÿ
æ–ÒŽ(gu¨©)³•一
通过¾l§æ‰¿è®¾è®¡æ‰€æœ‰å¯èƒ½å˜åœ¨çš„å类。å¯èƒ½æˆ‘们会(x¨¬)惛_ˆ°ä¸‹é¢çš„è¿™¿Uç‘ô承关¾p»ï¼š(x¨¬)
å±Œä¸æ€È±»åQšDiaoSi
屌ä¸åç±» - 按秾cÕdˆ†¾c»ï¼š(x¨¬)ManDiaoSiåQ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">WomanDiao
屌ä¸åç±» - 按特å¾åˆ†¾c»ï¼š(x¨¬)拥有黑木耳男屌ä¸åQŒæ‹¥æœ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">撸管王的奛_±Œä¸?/span>åQ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">拥有紫木耳男屌ä¸åQ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">拥有撸神的女屌ä¸
˜q™æ ·è®„¡½®ç‰¹å¾˜q™ä¸ªåŠ¨ä½œž®Þq”±å„个åç±»åŠ ä»¥å®žçŽ°ã€?/p>
但如果以åŽéœ€è¦å¢žåР䏀¿U?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">人妖屌ä¸åQˆGuyDiaoSiåQ‰ï¼Œä»¥åŠ(qi¨¢ng)å¢žåŠ ä¸€ä¸ªç‰¹å¾è§„æ ¼ç‚÷黑木耻I¼Œéœ€è¦å®žçŽ°çš„åç±»ž®†ä¼š(x¨¬)有:(x¨¬)
拥有黑木耳男屌ä¸åQŒæ‹¥æœ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">撸管王的奛_±Œä¸?/span>åQ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">拥有紫木耳男屌ä¸åQ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">æ‹¥æœ‰æ’¸ç¥žçš„å¥³å±Œä¸ æ‹¥æœ‰ç´«é»‘æœ¨è€³ç”·å±Œä¸ æ‹¥æœ‰æ’¸ç®¡çŽ‹çš„äººå¦–å±Œä¸ æ‹¥æœ‰ç´«é»‘æœ¨è€³äh妖屌ä¸?nbsp;拥有紫木耳äh妖屌ä¸?/span>
½{‰ç‰ã€?br />也就是说åQŒè¿™¿U设计方法,å类数目ž®†éšå‡ 何¾U§æ•°å¢žé•¿ã€?br />而且åQ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">拥有黑木耳男屌ä¸åQ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">拥有紫木耳äh妖屌ä¸?/span>的特å¾è§„æ ¼ç›¸åŒï¼Œå®ƒä»¬çš„特å¾è®¾¾|®åŠ¨ä½œåº”è¯¥æ˜¯ä¸€æ ïL(f¨¥ng)š„åQŒä½†çŽ°åœ¨æŠŠå®ƒä»¬åˆ†æˆä¸åŒçš„åç±»åQŒéš¾ä»¥é¿å…执行é‡å¤çš„åŠ¨ä½œè¡ŒäØ“(f¨´)ã€?/p>
æ–ÒŽ(gu¨©)³•äº?/strong>
分别为男屌ä¸ä»¥åŠ(qi¨¢ng)奛_±Œä¸å®žçŽ°è®¾¾|®ä¸åŒç‰¹å¾çš„æ–ÒŽ(gu¨©)³•
å±Œä¸æ€È±»åQšDiaoSi
屌ä¸åç±»åQ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">ManDiaoSiåQ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">WomanDiao
ç„¶åŽåœ¨ç”·å±Œä¸¾c»é‡Œåˆ†åˆ«æä¾›é»‘木耻I¼ˆæ’¸ç®¡çŽ‹ï¼‰ä»¥åŠ(qi¨¢ng)紫木耻I¼ˆæ’¸ç¥žåQ‰ç‰¹å¾çš„讄¡½®æ–ÒŽ(gu¨©)³•åQ?br />ManDiaoSi extends DiaoSi
{
public setFeatures黑木�);
public setFeatures紫木�);
}
在女屌举c»é‡Œä¹Ÿåˆ†åˆ«æä¾›æ’¸½Ž¡çދ以åŠ(qi¨¢ng)撸神特å¾çš„设¾|®æ–¹æ³•:(x¨¬)
WomanDiao extends DiaoSi
{
public setFeatures撸管�);
public setFeatures撸神();
}
˜q™ç§æƒ…况åQŒå¾cÈš„æ•°é‡æ˜¯è¢«æŽ§åˆ¶äº†ã€‚但一斚w¢åQŒå¦‚æžœæ¯å¢žåР䏀¿U特å¾è§„æ û|¼Œéœ€è¦ä¿®æ”ÒŽ(gu¨©)‰€æœ‰çš„屌ä¸åç±»åQ›å¦ä¸€æ–šw¢åQŒå³ä½¿ç‰¹å¾çš„讄¡½®è¡ŒäØ“(f¨´)ä¸€æ øP¼Œä½†æ˜¯ä¸åŒçš„屌ä¸å¾cÕd´éœ€è¦æä¾›å®Œå…¨ä¸€æ ïL(f¨¥ng)š„æ–ÒŽ(gu¨©)³•ã€?br />
在实际的应用开å‘ä¸åQŒä»¥ä¸?¿U方法都ä¼?x¨¬)é€ æˆ˜q一å‘而动全èínåQŒè€Œä¸”ä¼?x¨¬)å˜åœ¨å¤§é‡çš„é‡å¤ä»£ç ã€?/p>
Bridge模å¼å¯ä»¥å¾ˆå¥½çš„解册™¿™¾c»é—®é¢˜ã€?br />Client
Bridge模å¼çš„ä‹É用è€?br />Abstraction
抽象¾cÀLŽ¥å£ï¼ˆæŽ¥å£æˆ–抽象类åQ?br /> ¾l´æŠ¤å¯¹è¡Œä¸ºå®žçŽŽÍ¼ˆImplementoråQ‰çš„引用
Refined Abstraction
Abstractionåç±»
Implementor
è¡ŒäØ“(f¨´)实现¾cÀLŽ¥å?(Abstraction接å£å®šä¹‰äº†åŸºäºŽImplementor接å£çš„æ›´é«˜å±‚‹Æ¡çš„æ“ä½œ)
ConcreteImplementor
Implementoråç±»
Bridge模å¼çš„应用范ä¾?/strong>
我们æ¥çœ‹çœ‹æ€Žä¹ˆåº”用Bridgeæ¨¡å¼æ¥è®¾è®¡æ±½è½¦ç±»ã€?/p>
抽象 - Abstraction¾c»ï¼š(x¨¬)屌举cÕdŠ(qi¨¢ng)å…¶å¾c»ï¼š(x¨¬)
å±Œä¸æ€È±»åQšDiaoSi
屌ä¸åç±» - 按秾cÕdˆ†¾c»ï¼š(x¨¬)ManDiaoSiåQ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">WomanDiao
屌ä¸åç±» - 按特å¾åˆ†¾c»ï¼š(x¨¬)拥有黑木耳男屌ä¸åQŒæ‹¥æœ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">撸管王的奛_±Œä¸?/span>åQ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">拥有紫木耳男屌ä¸åQ?span style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px;">拥有撸神的女屌ä¸
è¡ŒäØ“(f¨´)实现 - ImplementoråQšå±Œä¸ç‰¹å¾è®¾¾|®çš„è¡ŒäØ“(f¨´)¾cÕdŠ(qi¨¢ng)åç±»
setFeaturesåQšå±Œä¸ç‰¹å¾çš„讄¡½®æŽ¥å£
setFeatures黑木�);
setFeatures紫木�);
代ç åQ?/p>
package ITfarmer.designpatterns.study.bridge;
//‹¹‹è¯•
public class Client
{
public static void main( String[] argv )
{
Features 黑木è€? new 男屌ä¸ç‰¹å¾?);
Features ç´?/span>木è€? new 奛_±Œä¸ç‰¹å¾?/span>();
DiaoSi 拥有黑木耳的男屌� new ManDiaoSi( 黑木�nbsp;);
DiaoSi 拥有紫木耳的男屌� new ManDiaoSi( 紫木�nbsp;);
拥有黑木耳的男屌�setFeatures();
拥有紫木耳的男屌�setFeatures();
DiaoSi 拥有黑木耳的奛_±Œä¸? new WomanDiao( 黑木è€?);
Vehicle 拥有紫木耳的奛_±Œä¸? new WomanDiao( 紫木è€?);
拥有黑木耳的奛_±Œä¸?setFeatures();
拥有紫木耳的奛_±Œä¸?setFeatures();
}
}
package ITfarmer.designpatterns.study.bridge;
*
* @author
* @since 2012/12/05
*/
public abstract class DiaoSi
{
private Features features;
Vehicle( Features features)
{
this.setFeatures ( features);
}
public abstract void setFeatures();
public void setFeatures( Features features)
{
this.features= features;
}
public Features getFeatures()
{
return features;
}
}
package ITfarmer.designpatterns.study.bridge;
//Abstractionåç±»åQšè¿™é‡ŒäØ“(f¨´)å±Œä¸æŠ½è±¡¾cÈš„åç±»
public class ManDiaoSi extends DiaoSi
{
public ManDiaoSi (Features features
)
{
super( features
);
}
@Override
public void setFeatures()
{
System.out.print("男屌ä¸çš„特å¾: ");
getFeatures.setFeatures();
}
}
package ITfarmer.designpatterns.study.bridge;
//Abstractionåç±»åQšè¿™é‡ŒäØ“(f¨´)å±Œä¸æŠ½è±¡¾cÈš„åç±»
public class WomanDiaoSi extends DiaoSi
{
public WomanDiaoSi ( Features features
)
{
super( features
);
}
@Override
public void setFeatures()
{
System.out.print("奛_±Œä¸çš„特å¾: ");
getFeatures().seFeatures();
}
}
package ITfarmer.designpatterns.study.bridge;
//屌举cÈš„è¡ŒäØ“(f¨´)接å£
public interface Features
{
public void setFeatures();
}
package ITfarmer.designpatterns.study.bridge;
/** ConcreteImplementor */
//è¡ŒäØ“(f¨´)实现åç±»
public class 男屌ä¸ç‰¹å¾?implements Features
{
public void setFeatures()
{
System.out.println("黑木�或�撸管�);
}
}
package ITfarmer.designpatterns.study.bridge;
/** ConcreteImplementor */
//è¡ŒäØ“(f¨´)实现åç±»
public class 奛_±Œä¸ç‰¹å¾?nbsp;implements Features
{
public void setFeatures()
{
System.out.println("黑木�或�撸管�);
}
}