如题所述
设计模å¼ä¸»è¦åä¸ä¸ªç±»å:å建åãç»æååè¡ä¸ºåã
å ¶ä¸å建åæï¼
ä¸ãSingletonï¼åä¾æ¨¡å¼ï¼ä¿è¯ä¸ä¸ªç±»åªæä¸ä¸ªå®ä¾ï¼å¹¶æä¾ä¸ä¸ªè®¿é®å®çå ¨å±è®¿é®ç¹
äºãAbstract Factoryï¼æ½è±¡å·¥åï¼æä¾ä¸ä¸ªå建ä¸ç³»åç¸å ³æç¸äºä¾èµå¯¹è±¡çæ¥å£ï¼èæ é¡»æå®å®ä»¬çå ·ä½ç±»ã
ä¸ãFactory Methodï¼å·¥åæ¹æ³ï¼å®ä¹ä¸ä¸ªç¨äºå建对象çæ¥å£ï¼è®©åç±»å³å®å®ä¾ååªä¸ä¸ªç±»ï¼Factory Method使ä¸ä¸ªç±»çå®ä¾å延è¿å°äºåç±»ã
åãBuilderï¼å»ºé 模å¼ï¼å°ä¸ä¸ªå¤æ对象çæ建ä¸ä»ç表示ç¸å离ï¼ä½¿å¾åæ ·çæ建è¿ç¨å¯ä»¥å建ä¸åç表示ã
äºãPrototypeï¼åå模å¼ï¼ç¨ååå®ä¾æå®å建对象çç§ç±»ï¼å¹¶ä¸éè¿æ·è´è¿äºååæ¥å建æ°ç对象ã
è¡ä¸ºåæï¼
å ãIteratorï¼è¿ä»£å¨æ¨¡å¼ï¼æä¾ä¸ä¸ªæ¹æ³é¡ºåºè®¿é®ä¸ä¸ªèå对象çå个å ç´ ï¼èåä¸éè¦æ´é²è¯¥å¯¹è±¡çå é¨è¡¨ç¤ºã
ä¸ãObserverï¼è§å¯è 模å¼ï¼å®ä¹å¯¹è±¡é´ä¸å¯¹å¤çä¾èµå ³ç³»ï¼å½ä¸ä¸ªå¯¹è±¡çç¶æåçæ¹åæ¶ï¼ææä¾èµäºå®ç对象é½å¾å°éç¥èªå¨æ´æ°ã
å «ãTemplate Methodï¼æ¨¡æ¿æ¹æ³ï¼å®ä¹ä¸ä¸ªæä½ä¸çç®æ³ç骨æ¶ï¼èå°ä¸äºæ¥éª¤å»¶è¿å°åç±»ä¸ï¼TemplateMethod使å¾åç±»å¯ä»¥ä¸æ¹åä¸ä¸ªç®æ³çç»æå³å¯ä»¥éå®ä¹è¯¥ç®æ³å¾æäºç¹å®æ¥éª¤ã
ä¹ãCommandï¼å½ä»¤æ¨¡å¼ï¼å°ä¸ä¸ªè¯·æ±å°è£ 为ä¸ä¸ªå¯¹è±¡ï¼ä»èä½¿ä½ å¯ä»¥ç¨ä¸åç请æ±å¯¹å®¢æ·è¿è¡åæ°åï¼å¯¹è¯·æ±æéåè®°å½è¯·æ±æ¥å¿ï¼ä»¥åæ¯æå¯æ¤éçæä½ã
åãStateï¼ç¶æ模å¼ï¼å 许对象å¨å ¶å é¨ç¶ææ¹åæ¶æ¹åä»çè¡ä¸ºã对象çèµ·æ¥ä¼¼ä¹æ¹åäºä»çç±»ã
åä¸ãStrategyï¼çç¥æ¨¡å¼ï¼å®ä¹ä¸ç³»åçç®æ³ï¼æä»ä»¬ä¸ä¸ªä¸ªå°è£ èµ·æ¥ï¼å¹¶ä½¿ä»ä»¬å¯ä»¥äºç¸æ¿æ¢ï¼æ¬æ¨¡å¼ä½¿å¾ç®æ³å¯ä»¥ç¬ç«äºä½¿ç¨å®ä»¬ç客æ·ã
åäºãChina of Responsibilityï¼èè´£é¾æ¨¡å¼ï¼ä½¿å¤ä¸ªå¯¹è±¡é½ææºä¼å¤ç请æ±ï¼ä»èé¿å 请æ±çéåè åæ¥æ¶è ä¹é´çè¦åå ³ç³»
åä¸ãMediatorï¼ä¸ä»è 模å¼ï¼ç¨ä¸ä¸ªä¸ä»å¯¹è±¡å°è£ ä¸äºåç对象交äºã
ååãVisitorï¼è®¿é®è 模å¼ï¼è¡¨ç¤ºä¸ä¸ªä½ç¨äºæ对象ç»æä¸çåå ç´ çæä½ï¼å®ä½¿ä½ å¯ä»¥å¨ä¸æ¹ååå ç´ ç±»çåæä¸å®ä¹ä½ç¨äºè¿ä¸ªå ç´ çæ°æä½ã
åäºãInterpreterï¼è§£éå¨æ¨¡å¼ï¼ç»å®ä¸ä¸ªè¯è¨ï¼å®ä¹ä»çææ³çä¸ä¸ªè¡¨ç¤ºï¼å¹¶å®ä¹ä¸ä¸ªè§£éå¨ï¼è¿ä¸ªè§£éå¨ä½¿ç¨è¯¥è¡¨ç¤ºæ¥è§£éè¯è¨ä¸çå¥åã
åå ãMementoï¼å¤å¿å½æ¨¡å¼ï¼å¨ä¸ç ´å对象çåæä¸ï¼æè·ä¸ä¸ªå¯¹è±¡çå é¨ç¶æï¼å¹¶å¨è¯¥å¯¹è±¡ä¹å¤ä¿åè¿ä¸ªç¶æã
ç»æåæï¼
åä¸ãCompositeï¼ç»å模å¼ï¼å°å¯¹è±¡ç»åææ å½¢ç»æ以表示é¨åæ´ä½çå ³ç³»ï¼Composite使å¾ç¨æ·å¯¹å个对象åç»å对象ç使ç¨å ·æä¸è´æ§ã
åå «ãFacadeï¼å¤è§æ¨¡å¼ï¼ä¸ºåç³»ç»ä¸çä¸ç»æ¥å£æä¾ä¸è´ççé¢ï¼fa?adeæä¾äºä¸é«å±æ¥å£ï¼è¿ä¸ªæ¥å£ä½¿å¾åç³»ç»æ´å®¹æ使ç¨ã
åä¹ãProxyï¼ä»£ç模å¼ï¼ä¸ºå ¶ä»å¯¹è±¡æä¾ä¸ç§ä»£ç以æ§å¶å¯¹è¿ä¸ªå¯¹è±¡ç访é®
äºåãAdapter,éé å¨æ¨¡å¼ï¼å°ä¸ç±»çæ¥å£è½¬æ¢æ客æ·å¸æçå¦å¤ä¸ä¸ªæ¥å£ï¼Adapter模å¼ä½¿å¾åæ¬ç±äºæ¥å£ä¸å ¼å®¹èä¸è½ä¸èµ·å·¥ä½é£äºç±»å¯ä»¥ä¸èµ·å·¥ä½ã
äºåä¸ãDecratorï¼è£ 饰模å¼ï¼å¨æå°ç»ä¸ä¸ªå¯¹è±¡å¢å ä¸äºé¢å¤çèè´£ï¼å°±å¢å çåè½æ¥è¯´ï¼Decorator模å¼ç¸æ¯çæåç±»æ´å çµæ´»ã
äºåäºãBridgeï¼æ¡¥æ¨¡å¼ï¼å°æ½è±¡é¨åä¸å®çå®ç°é¨åç¸å离ï¼ä½¿ä»ä»¬å¯ä»¥ç¬ç«çååã
äºåä¸ãFlyweightï¼äº«å 模å¼
å ¶ä¸å建åæï¼
ä¸ãSingletonï¼åä¾æ¨¡å¼ï¼ä¿è¯ä¸ä¸ªç±»åªæä¸ä¸ªå®ä¾ï¼å¹¶æä¾ä¸ä¸ªè®¿é®å®çå ¨å±è®¿é®ç¹
äºãAbstract Factoryï¼æ½è±¡å·¥åï¼æä¾ä¸ä¸ªå建ä¸ç³»åç¸å ³æç¸äºä¾èµå¯¹è±¡çæ¥å£ï¼èæ é¡»æå®å®ä»¬çå ·ä½ç±»ã
ä¸ãFactory Methodï¼å·¥åæ¹æ³ï¼å®ä¹ä¸ä¸ªç¨äºå建对象çæ¥å£ï¼è®©åç±»å³å®å®ä¾ååªä¸ä¸ªç±»ï¼Factory Method使ä¸ä¸ªç±»çå®ä¾å延è¿å°äºåç±»ã
åãBuilderï¼å»ºé 模å¼ï¼å°ä¸ä¸ªå¤æ对象çæ建ä¸ä»ç表示ç¸å离ï¼ä½¿å¾åæ ·çæ建è¿ç¨å¯ä»¥å建ä¸åç表示ã
äºãPrototypeï¼åå模å¼ï¼ç¨ååå®ä¾æå®å建对象çç§ç±»ï¼å¹¶ä¸éè¿æ·è´è¿äºååæ¥å建æ°ç对象ã
è¡ä¸ºåæï¼
å ãIteratorï¼è¿ä»£å¨æ¨¡å¼ï¼æä¾ä¸ä¸ªæ¹æ³é¡ºåºè®¿é®ä¸ä¸ªèå对象çå个å ç´ ï¼èåä¸éè¦æ´é²è¯¥å¯¹è±¡çå é¨è¡¨ç¤ºã
ä¸ãObserverï¼è§å¯è 模å¼ï¼å®ä¹å¯¹è±¡é´ä¸å¯¹å¤çä¾èµå ³ç³»ï¼å½ä¸ä¸ªå¯¹è±¡çç¶æåçæ¹åæ¶ï¼ææä¾èµäºå®ç对象é½å¾å°éç¥èªå¨æ´æ°ã
å «ãTemplate Methodï¼æ¨¡æ¿æ¹æ³ï¼å®ä¹ä¸ä¸ªæä½ä¸çç®æ³ç骨æ¶ï¼èå°ä¸äºæ¥éª¤å»¶è¿å°åç±»ä¸ï¼TemplateMethod使å¾åç±»å¯ä»¥ä¸æ¹åä¸ä¸ªç®æ³çç»æå³å¯ä»¥éå®ä¹è¯¥ç®æ³å¾æäºç¹å®æ¥éª¤ã
ä¹ãCommandï¼å½ä»¤æ¨¡å¼ï¼å°ä¸ä¸ªè¯·æ±å°è£ 为ä¸ä¸ªå¯¹è±¡ï¼ä»èä½¿ä½ å¯ä»¥ç¨ä¸åç请æ±å¯¹å®¢æ·è¿è¡åæ°åï¼å¯¹è¯·æ±æéåè®°å½è¯·æ±æ¥å¿ï¼ä»¥åæ¯æå¯æ¤éçæä½ã
åãStateï¼ç¶æ模å¼ï¼å 许对象å¨å ¶å é¨ç¶ææ¹åæ¶æ¹åä»çè¡ä¸ºã对象çèµ·æ¥ä¼¼ä¹æ¹åäºä»çç±»ã
åä¸ãStrategyï¼çç¥æ¨¡å¼ï¼å®ä¹ä¸ç³»åçç®æ³ï¼æä»ä»¬ä¸ä¸ªä¸ªå°è£ èµ·æ¥ï¼å¹¶ä½¿ä»ä»¬å¯ä»¥äºç¸æ¿æ¢ï¼æ¬æ¨¡å¼ä½¿å¾ç®æ³å¯ä»¥ç¬ç«äºä½¿ç¨å®ä»¬ç客æ·ã
åäºãChina of Responsibilityï¼èè´£é¾æ¨¡å¼ï¼ä½¿å¤ä¸ªå¯¹è±¡é½ææºä¼å¤ç请æ±ï¼ä»èé¿å 请æ±çéåè åæ¥æ¶è ä¹é´çè¦åå ³ç³»
åä¸ãMediatorï¼ä¸ä»è 模å¼ï¼ç¨ä¸ä¸ªä¸ä»å¯¹è±¡å°è£ ä¸äºåç对象交äºã
ååãVisitorï¼è®¿é®è 模å¼ï¼è¡¨ç¤ºä¸ä¸ªä½ç¨äºæ对象ç»æä¸çåå ç´ çæä½ï¼å®ä½¿ä½ å¯ä»¥å¨ä¸æ¹ååå ç´ ç±»çåæä¸å®ä¹ä½ç¨äºè¿ä¸ªå ç´ çæ°æä½ã
åäºãInterpreterï¼è§£éå¨æ¨¡å¼ï¼ç»å®ä¸ä¸ªè¯è¨ï¼å®ä¹ä»çææ³çä¸ä¸ªè¡¨ç¤ºï¼å¹¶å®ä¹ä¸ä¸ªè§£éå¨ï¼è¿ä¸ªè§£éå¨ä½¿ç¨è¯¥è¡¨ç¤ºæ¥è§£éè¯è¨ä¸çå¥åã
åå ãMementoï¼å¤å¿å½æ¨¡å¼ï¼å¨ä¸ç ´å对象çåæä¸ï¼æè·ä¸ä¸ªå¯¹è±¡çå é¨ç¶æï¼å¹¶å¨è¯¥å¯¹è±¡ä¹å¤ä¿åè¿ä¸ªç¶æã
ç»æåæï¼
åä¸ãCompositeï¼ç»å模å¼ï¼å°å¯¹è±¡ç»åææ å½¢ç»æ以表示é¨åæ´ä½çå ³ç³»ï¼Composite使å¾ç¨æ·å¯¹å个对象åç»å对象ç使ç¨å ·æä¸è´æ§ã
åå «ãFacadeï¼å¤è§æ¨¡å¼ï¼ä¸ºåç³»ç»ä¸çä¸ç»æ¥å£æä¾ä¸è´ççé¢ï¼fa?adeæä¾äºä¸é«å±æ¥å£ï¼è¿ä¸ªæ¥å£ä½¿å¾åç³»ç»æ´å®¹æ使ç¨ã
åä¹ãProxyï¼ä»£ç模å¼ï¼ä¸ºå ¶ä»å¯¹è±¡æä¾ä¸ç§ä»£ç以æ§å¶å¯¹è¿ä¸ªå¯¹è±¡ç访é®
äºåãAdapter,éé å¨æ¨¡å¼ï¼å°ä¸ç±»çæ¥å£è½¬æ¢æ客æ·å¸æçå¦å¤ä¸ä¸ªæ¥å£ï¼Adapter模å¼ä½¿å¾åæ¬ç±äºæ¥å£ä¸å ¼å®¹èä¸è½ä¸èµ·å·¥ä½é£äºç±»å¯ä»¥ä¸èµ·å·¥ä½ã
äºåä¸ãDecratorï¼è£ 饰模å¼ï¼å¨æå°ç»ä¸ä¸ªå¯¹è±¡å¢å ä¸äºé¢å¤çèè´£ï¼å°±å¢å çåè½æ¥è¯´ï¼Decorator模å¼ç¸æ¯çæåç±»æ´å çµæ´»ã
äºåäºãBridgeï¼æ¡¥æ¨¡å¼ï¼å°æ½è±¡é¨åä¸å®çå®ç°é¨åç¸å离ï¼ä½¿ä»ä»¬å¯ä»¥ç¬ç«çååã
äºåä¸ãFlyweightï¼äº«å 模å¼
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-02-12
设计模式是一种思想,是需要和实际项目结合使用的,不可被滥用。要在实践当中学会分析和思考,项目需求不断的发生变化的时候,应用设计模式是会带来比较多的好处的,对于以后的维护也更加容易和方便。建议看看《软件秘笈-设计模式那点事》,相信会收获很多的!
第2个回答 2012-02-10
设计模式 是为了 让代码优化, 增加可读性。 重写 重用性
高内聚 低耦合。
是java 设计模式的最终目标。
高内聚 低耦合。
是java 设计模式的最终目标。