Javaé¢å对象设计åå
1) Open-Close Principleï¼OCPï¼ï¼å¼-éååï¼è®²çæ¯è®¾è®¡è¦å¯¹æ©å±æ好çæ¯æï¼è对修æ¹è¦ä¸¥æ ¼éå¶ãè¿æ¯æéè¦ä¹æ¯æ为æ½è±¡çååï¼åºæ¬ä¸æ们æ说çReusable Softwareæ¢æ¯åºäºæ¤ååèå¼åçãå
¶ä»çååä¹æ¯å¯¹å®çå®ç°æä¾äºè·¯å¾ã
2) Liskov Substituition Principleï¼LSPï¼ï¼éæ°ä»£æ¢ååï¼å¾ä¸¥æ ¼çååï¼è§åæ¯âåç±»å¿
é¡»è½å¤æ¿æ¢åºç±»ï¼å¦åä¸åºå½è®¾è®¡ä¸ºå
¶åç±»ãâä¹å°±æ¯è¯´ï¼åç±»åªè½å»æ©å±åºç±»ï¼èä¸æ¯éèæè¦çåºç±».
3) Dependence Inversion Principleï¼DIPï¼ï¼ä¾èµåæ¢ååï¼â设计è¦ä¾èµäºæ½è±¡èä¸æ¯å
·ä½åâãæ¢å¥è¯è¯´å°±æ¯è®¾è®¡çæ¶åæ们è¦ç¨æ½è±¡æ¥æèï¼èä¸æ¯ä¸ä¸æ¥å°±å¼å§ååæéè¦åªäºåªäºç±»ï¼å 为è¿äºæ¯å
·ä½ãè¿æ ·åæä»ä¹å¥½å¤å¢ï¼äººçæç»´æ¬èº«å®é
ä¸å°±æ¯å¾æ½è±¡çï¼æ们åæé®é¢çæ¶åä¸æ¯ä¸ä¸åå°±èèå°ç»èï¼èæ¯å¾æ½è±¡çå°æ´ä¸ªé®é¢é½ææåºæ¥ï¼æ以é¢åæ½è±¡è®¾è®¡æ¯ç¬¦å人çæç»´çãå¦å¤è¿ä¸ªååä¼å¾å¥½çæ¯æOCPï¼é¢åæ½è±¡ç设计使æ们è½å¤ä¸å¿
太å¤ä¾èµäºå®ç°ï¼è¿æ ·æ©å±å°±æ为äºå¯è½ï¼è¿ä¸ªååä¹æ¯å¦ä¸ç¯æç« ãDesign by Contractãçåºç³ã
4) Interface Segregation Principleï¼ISPï¼ï¼âå°å¤§çæ¥å£ææ£æå¤ä¸ªå°æ¥å£âï¼è¿æ ·åç好å¤å¾ææ¾ï¼æä¸ç¥éæ没æå¿
è¦å继ç»æè¿°äºï¼ä¸ºäºèçç¯å¹
ï¼å®é
ä¸æ对è¿äºåååªæ¯åäºä¸ä¸ªå°æ»ç»ï¼å¦ææéè¦æ´æ·±å
¥äºè§£çè¯æ¨èçãJavaä¸æ¨¡å¼ãï¼MS MVPçä¸æ¬å·¨ä½ï¼^_^
5) Composition/Aggregation Reuse Principleï¼CARPï¼ï¼è®¾è®¡è
é¦å
åºå½èèå¤å/èåï¼èä¸æ¯ç»§æ¿ï¼å 为å®å¾ç´è§ï¼ç¬¬ä¸å°è±¡å°±æ¯âå¦ï¼è¿ä¸ªå°±æ¯OOåâï¼ãè¿ä¸ªå°±æ¯æè°çâFavor Composition over Inheritanceâï¼å¨å®è·µä¸å¤å/èåä¼å¸¦æ¥æ¯ç»§æ¿æ´å¤§çå©çï¼æ以è¦ä¼å
èèã
6) Law of Demeter or Least Knowlegde Principleï¼LoD or LKPï¼ï¼è¿ªç±³ç¹æ³åææå°ç¥è¯ååï¼è¿ä¸ªååé¦æ¬¡å¨Demeterç³»ç»ä¸å¾å°æ£å¼è¿ç¨ï¼æ以å®ä¹ä¸ºè¿ªç±³ç¹æ³åãå®è®²çæ¯âä¸ä¸ªå¯¹è±¡åºå½å°½å¯è½å°çå»äºè§£å
¶ä»å¯¹è±¡âãä¹å°±æ¯åä¸ä¸ªå
³äºå¦ä½æ¾è¦åï¼Loosely-Coupledï¼çæ³åã
设计模å¼ï¼
1ï¼éé
å¨æ¨¡å¼
http://eneasy.javaeye.com/blog/174838 2ï¼æ¡¥æ¥å¨æ¨¡å¼
http://eneasy.javaeye.com/blog/174892 3ï¼èè´£é¾æ¨¡å¼
http://eneasy.javaeye.com/blog/174906 4ï¼å½ä»¤æ¨¡å¼
http://eneasy.javaeye.com/blog/174896 5ï¼è£
饰å¨æ¨¡å¼
http://eneasy.javaeye.com/blog/174840 6ï¼å¤è§æ¨¡å¼
http://eneasy.javaeye.com/blog/174890 7ï¼å·¥å模å¼
http://eneasy.javaeye.com/blog/174831 8ï¼äº«å
模å¼
http://eneasy.javaeye.com/blog/174891 9ï¼ä»£ç模å¼
http://eneasy.javaeye.com/blog/174887 10ï¼åä¾æ¨¡å¼
http://eneasy.javaeye.com/blog/174829 11ï¼ç¶æ模å¼
http://eneasy.javaeye.com/blog/174897 12ï¼çç¥æ¨¡å¼
http://eneasy.javaeye.com/blog/174894 13ï¼æ¨¡æ¿æ¨¡å¼
http://eneasy.javaeye.com/blog/174893 14ï¼è®¿é®è
模å¼
http://eneasy.javaeye.com/blog/174914