å建å设计模å¼æç®åå·¥å模å¼ï¼å·¥åæ¹æ³æ¨¡å¼åæ½è±¡å·¥å模å¼ï¼å·¥å模å¼ç好å¤éè¦å¯¹æ¯è·å¾ã
ç®åå·¥å模å¼ï¼å·¥åæ¹æ³æ¨¡å¼åæ½è±¡å·¥å模å¼é½æ¯å±äºå建å设计模å¼ï¼è¿ä¸ç§å建å模å¼é½ä¸éè¦ç¥éå
·ä½ç±»ãæ们ææ¡ä¸ç§ææ³ï¼å°±æ¯å¨å建ä¸ä¸ªå¯¹è±¡æ¶ï¼éè¦æ容æåçååçå°æ¹ç»å°è£
èµ·æ¥ï¼æ¥æ§å¶ååï¼åªéååï¼å°è£
åªéï¼ï¼ä»¥éåºå®¢æ·çåå¨ï¼é¡¹ç®çæ©å±ãç¨è¿ä¸ç§è®¾è®¡æ¨¡å¼é½å¯ä»¥å®ç°.ä¸é¢æ ¹æ®è¿ä¸è
ä¹é´çç¹ç¹ï¼ä¼ç¹ï¼ç¼ºç¹ï¼éç¨èå´è¿è¡æ¯è¾ã
1. ç¹ç¹
ç®åå·¥å模å¼ï¼ä¸é¨å®ä¹ä¸ä¸ªç±»æ¥è´è´£å建å
¶ä»ç±»çå®ä¾ï¼è¢«å建çå®ä¾é常é½å
·æ å
±åçç¶ç±»ãå®å称为éæå·¥åæ¹æ³æ¨¡å¼ãå®çå®è´¨æ¯ç±ä¸ä¸ªå·¥åç±»æ ¹æ®ä¼ å
¥çåæ°ï¼å¨æå³å®åºè¯¥å建åªä¸ä¸ªäº§åç±»ï¼è¿äºäº§å类继æ¿èªä¸ä¸ªç¶ç±»ææ¥å£ï¼çå®ä¾ãç®åå·¥å模å¼çå建ç®æ ï¼ææå建ç对象é½æ¯å
å½è¿ä¸ªè§è²çæ个å
·ä½ç±»çå®ä¾ãå¨è¿ä¸ªæ¨¡å¼ä¸ï¼å·¥åç±»æ¯æ´ä¸ªæ¨¡å¼çå
³é®æå¨ãå®å
å«å¿
è¦çå¤æé»è¾ï¼è½å¤æ ¹æ®å¤çç»å®çä¿¡æ¯ï¼å³å®ç©¶ç«åºè¯¥å建åªä¸ªå
·ä½ç±»ç对象ãç¨æ·å¨ä½¿ç¨æ¶å¯ä»¥ç´æ¥æ ¹æ®å·¥åç±»å»å建æéçå®ä¾ï¼èæ éäºè§£è¿äºå¯¹è±¡æ¯å¦ä½å建以åå¦ä½ç»ç»çãæå©äºæ´ä¸ªè½¯ä»¶ä½ç³»ç»æçä¼åã
å·¥åæ¹æ³æ¨¡å¼ï¼å·¥åæ¹æ³æ¯ç²åº¦å¾å°ç设计模å¼ï¼å 为模å¼ç表ç°åªæ¯ä¸ä¸ªæ½è±¡çæ¹æ³ã æåå®ä¹ç¨äºå建对象çæ¥å£ï¼è®©åç±»å³å®å®ä¾åå
·ä½çæä¸ä¸ªç±»ï¼å³å¨å·¥åå产åä¸é´å¢å æ¥å£ï¼å·¥åä¸åè´è´£äº§åçå建ï¼ç±æ¥å£é对ä¸åæ¡ä»¶è¿åå
·ä½çç±»å®ä¾ï¼ç±å
·ä½ç±»å®ä¾å»å®ç°ãå·¥åæ¹æ³æ¨¡å¼æ¯ç®åå·¥å模å¼çè¡çï¼è§£å³äºè®¸å¤ç®åå·¥å模å¼çé®é¢ãé¦å
å®å
¨å®ç°âå¼ï¼é ååâï¼å®ç°äºå¯æ©å±ãå
¶æ¬¡å®ç°æ´å¤æçå±æ¬¡ç»æï¼å¯ä»¥åºç¨äºäº§åç»æå¤æçåºåãå·¥åæ¹æ³æ¨¡å¼æ¯å¯¹ç®åå·¥å模å¼è¿è¡äºæ½è±¡ãæä¸ä¸ªæ½è±¡çFactoryç±»ï¼å¯ä»¥æ¯æ½è±¡ç±»åæ¥å£ï¼ï¼è¿ä¸ªç±»å°ä¸å¨è´è´£å
·ä½ç产åç产ï¼èæ¯åªå¶å®ä¸äºè§èï¼å
·ä½çç产工ä½ç±å
¶åç±»å»å®æãå¨è¿ä¸ªæ¨¡å¼ä¸ï¼å·¥åç±»å产åç±»å¾å¾å¯ä»¥ä¾æ¬¡å¯¹åºãå³ä¸ä¸ªæ½è±¡å·¥å对åºä¸ä¸ªæ½è±¡äº§åï¼ä¸ä¸ªå
·ä½å·¥å对åºä¸ä¸ªå
·ä½äº§åï¼è¿ä¸ªå
·ä½çå·¥åå°±è´è´£ç产对åºç产åã
æ½è±¡å·¥å模å¼ï¼æ½è±¡å·¥å模å¼æ¯ææå½¢æçå·¥å模å¼ä¸æ为æ½è±¡åæå
·ä¸è¬æ§çä¸ ç§å½¢æãæ½è±¡å·¥å模å¼æ¯æå½æå¤ä¸ªæ½è±¡è§è²æ¶ï¼ä½¿ç¨çä¸ç§å·¥å模å¼ãæ½è±¡å·¥å模å¼å¯ä»¥å客æ·ç«¯æä¾ä¸ä¸ªæ¥å£ï¼ä½¿å®¢æ·ç«¯å¨ä¸å¿
æå®äº§åçå
·ä½çæ
åµä¸ï¼å建å¤ä¸ªäº§åæä¸ç产å对象ãå®æå¤ä¸ªæ½è±¡äº§åç±»ï¼æ¯ä¸ªæ½è±¡äº§åç±»å¯ä»¥æ´¾çåºå¤ä¸ªå
·ä½äº§åç±»ï¼ä¸ä¸ªæ½è±¡å·¥åç±»ï¼å¯ä»¥æ´¾çåºå¤ä¸ªå
·ä½å·¥åç±»ï¼æ¯ä¸ªå
·ä½å·¥åç±»å¯ä»¥å建å¤ä¸ªå
·ä½äº§åç±»çå®ä¾ãæ¯ä¸ä¸ªæ¨¡å¼é½æ¯é对ä¸å®é®é¢ç解å³æ¹æ¡ï¼å·¥åæ¹æ³æ¨¡å¼é对çæ¯ä¸ä¸ªäº§åç级ç»æï¼èæ½è±¡å·¥å模å¼é对çæ¯å¤ä¸ªäº§åç级ç»æã
Go back
2. ä¼ç¹
ç®åå·¥å模å¼ï¼å·¥åç±»å«æå¿
è¦çå¤æé»è¾ï¼å¯ä»¥å³å®å¨ä»ä¹æ¶åå建åªä¸ä¸ªäº§åç±»çå® ä¾ï¼å®¢æ·ç«¯å¯ä»¥å
é¤ç´æ¥å建产å对象ç责任ï¼èä»
ä»
"æ¶è´¹"产åãç®åå·¥å模å¼éè¿è¿ç§åæ³å®ç°äºå¯¹è´£ä»»çåå²ãç®åå·¥å模å¼è½å¤æ ¹æ®å¤çç»å®çä¿¡æ¯ï¼å³å®ç©¶ç«åºè¯¥å建åªä¸ªå
·ä½ç±»ç对象ãéè¿å®ï¼å¤çå¯ä»¥ä»ç´æ¥å建å
·ä½äº§å对象çå°´å°¬å±é¢ä¸æè±åºæ¥ãå¤çä¸å
·ä½ç±»é离å¼æ¥ï¼å¶åæ§ä½ãæç¡®åºåäºåèªçèè´£åæåï¼æå©äºæ´ä¸ªè½¯ä»¶ä½ç³»ç»æçä¼åã
å·¥åæ¹æ³æ¨¡å¼ï¼å·¥åæ¹æ³æ¨¡å¼æ¯ä¸ºäºå
æç®åå·¥å模å¼ç缺ç¹ï¼ä¸»è¦æ¯ä¸ºäºæ»¡è¶³OCPï¼è 设计åºæ¥çãç®åå·¥å模å¼çå·¥åç±»éç产åç±»çå¢å éè¦å¢å å¾å¤æ¹æ³ï¼æ代ç ï¼ï¼èå·¥åæ¹æ³æ¨¡å¼æ¯ä¸ªå
·ä½å·¥åç±»åªå®æåä¸ä»»å¡ï¼ä»£ç ç®æ´ãå·¥åæ¹æ³æ¨¡å¼å®å
¨æ»¡è¶³OCPï¼å³å®æé常è¯å¥½çæ©å±æ§ã
æ½è±¡å·¥å模å¼ï¼æ½è±¡å·¥å模å¼ä¸»è¦å¨äºåºå¯¹âæ°ç³»åâçéæ±ååãå离äºå
·ä½çç±»ï¼æ½ 象工å模å¼å¸®å©ä½ æ§å¶ä¸ä¸ªåºç¨å建ç对象çç±»ï¼å 为ä¸ä¸ªå·¥åå°è£
å建产å对象ç责任åè¿ç¨ãå®å°å®¢æ·åç±»çå®ç°å离ï¼å®¢æ·éè¿ä»ä»¬çæ½è±¡æ¥å£æ纵å®ä¾ï¼äº§åçç±»åä¹å¨å
·ä½å·¥åçå®ç°ä¸è¢«å离ï¼å®ä»¬ä¸åºç°å¨å®¢æ·ä»£ç ä¸ãå®ä½¿å¾æäºäº¤æ¢äº§åç³»åãä¸ä¸ªå
·ä½å·¥åç±»å¨ä¸ä¸ªåºç¨ä¸ä»
åºç°ä¸æ¬¡ââå³å¨å®åå§åçæ¶åãè¿ä½¿å¾æ¹åä¸ä¸ªåºç¨çå
·ä½å·¥ååå¾å¾å®¹æãå®åªéæ¹åå
·ä½çå·¥åå³å¯ä½¿ç¨ä¸åç产åé
ç½®ï¼è¿æ¯å 为ä¸ä¸ªæ½è±¡å·¥åå建äºä¸ä¸ªå®æ´ç产åç³»åï¼æ以æ´ä¸ªäº§åç³»åä¼ç«å»æ¹åãå®æå©äºäº§åçä¸è´æ§ãå½ä¸ä¸ªç³»åç产å对象被设计æä¸èµ·å·¥ä½æ¶ï¼ä¸ä¸ªåºç¨ä¸æ¬¡åªè½ä½¿ç¨åä¸ä¸ªç³»åä¸ç对象ï¼è¿ä¸ç¹å¾éè¦ï¼èæ½è±¡å·¥åå¾å®¹æå®ç°è¿ä¸ç¹ãæ½è±¡å·¥å模å¼æå©äºè¿æ ·çå¢éçåå·¥ï¼éä½äºæ¨¡åé´çè¦åæ§ï¼æé«äºå¢éå¼åæçã
Go back
3. 缺ç¹
ç®åå·¥å模å¼ï¼å½äº§åæå¤æçå¤å±ç级ç»ææ¶ï¼å·¥åç±»åªæèªå·±ï¼ä»¥ä¸ååºä¸åï¼å°±æ¯æ¨¡å¼ç缺ç¹ãå 为工åç±»éä¸äºææ产åå建é»è¾ï¼ä¸æ¦ä¸è½æ£å¸¸å·¥ä½ï¼æ´ä¸ªç³»ç»é½è¦åå°å½±åãç³»ç»æ©å±å°é¾ï¼ä¸æ¦æ·»å æ°äº§åå°±ä¸å¾ä¸ä¿®æ¹å·¥åé»è¾ï¼å¦æè¦å¢å ä¸ä¸ªäº§åï¼åéè¦ä¿®æ¹å·¥åç±»ï¼å¢å if/elseåæ¯ï¼æè
å¢å ä¸ä¸ªcaseåæ¯ï¼ï¼æå¯è½é æå·¥åé»è¾è¿äºå¤æ,è¿èäº"å¼æ¾--å°é"åå(OCP).å¦å¤ï¼ç®åå·¥å模å¼é常使ç¨éæå·¥åæ¹æ³ï¼è¿ä½¿å¾æ æ³ç±å类继æ¿ï¼é æå·¥åè§è²æ æ³å½¢æåºäºç»§æ¿çç级ç»æã
å·¥åæ¹æ³æ¨¡å¼ï¼ä¸æäºç»´æ¤ï¼åå¦æ个å
·ä½äº§åç±»éè¦è¿è¡ä¸å®çä¿®æ¹ï¼å¾å¯è½éè¦ä¿®æ¹å¯¹åºçå·¥åç±»ãå½åæ¶éè¦ä¿®æ¹å¤ä¸ªäº§åç±»çæ¶åï¼å¯¹å·¥åç±»çä¿®æ¹ä¼åå¾ç¸å½éº»ç¦ï¼å¯¹å·å
¥åº§å·²ç»æ¯ä¸ªé®é¢äºï¼ã
æ½è±¡å·¥å模å¼ï¼æ½è±¡å·¥å模å¼å¨äºé¾äºåºä»âæ°å¯¹è±¡âçéæ±åå¨ãé¾ä»¥æ¯ææ°ç§ç±»ç产åãé¾ä»¥æ©å±æ½è±¡å·¥å以ç产æ°ç§ç±»ç产åãè¿æ¯å 为æ½è±¡å·¥åå ä¹ç¡®å®äºå¯ä»¥è¢«å建ç产åéåï¼æ¯ææ°ç§ç±»ç产åå°±éè¦æ©å±è¯¥å·¥åæ¥å£ï¼è¿å°æ¶åæ½è±¡å·¥åç±»åå
¶ææåç±»çæ¹åã
Go back
4. éç¨èå´
ç®åå·¥å模å¼ï¼å·¥åç±»è´è´£å建ç对象æ¯è¾å°ï¼å®¢æ·åªç¥éä¼ å
¥äºå·¥åç±»çåæ°ï¼å¯¹ äºå§ä½å建对象ï¼é»è¾ï¼ä¸å
³å¿ã
å·¥åæ¹æ³æ¨¡å¼ï¼å½ä¸ä¸ªç±»ä¸ç¥éå®æå¿
é¡»å建对象çç±»æä¸ä¸ªç±»å¸æç±åç±»æ¥æå®å®æå建ç对象æ¶ï¼å½ç±»å°å建对象çèè´£å§æç»å¤ä¸ªå¸®å©åç±»ä¸çæä¸ä¸ªï¼å¹¶ä¸ä½ å¸æå°åªä¸ä¸ªå¸®å©åç±»æ¯ä»£çè
è¿ä¸ä¿¡æ¯å±é¨åçæ¶åï¼å¯ä»¥ä½¿ç¨å·¥åæ¹æ³ã
æ½è±¡å·¥å模å¼ï¼ä¸ä¸ªç³»ç»ä¸åºå½ä¾èµäºäº§åç±»å®ä¾å¦ä½è¢«å建ãç»åå表达çç»èï¼è¿å¯¹äºææå½¢æçå·¥å模å¼é½æ¯éè¦çãè¿ä¸ªç³»ç»æå¤äºä¸ä¸ªç产åæï¼èç³»ç»åªæ¶è´¹å
¶ä¸æä¸äº§åæãåå±äºåä¸ä¸ªäº§åæç产åæ¯å¨ä¸èµ·ä½¿ç¨çï¼è¿ä¸çº¦æå¿
é¡»å¨ç³»ç»ç设计ä¸ä½ç°åºæ¥ãç³»ç»æä¾ä¸ä¸ªäº§åç±»çåºï¼ææç产å以åæ ·çæ¥å£åºç°ï¼ä»è使客æ·ç«¯ä¸ä¾èµäºå®ç°ã
å
¶å®ï¼æ 论æ¯ç®åå·¥å模å¼ãå·¥å模å¼è¿æ¯æ½è±¡å·¥å模å¼ï¼å®ä»¬æ¬è´¨ä¸é½æ¯å°ä¸åçé¨åæååºæ¥ï¼å°å¯åçé¨åçä½æ¥å£ï¼ä»¥è¾¾å°æ大ç¨åº¦ä¸çå¤ç¨ã究ç«ç¨åªç§è®¾è®¡æ¨¡å¼æ´éåï¼è¿è¦æ ¹æ®å
·ä½çä¸å¡éæ±æ¥å³å®ã
温馨提示:答案为网友推荐,仅供参考