å ³äºè½¯ä»¶è®¾è®¡åºéµå¾ªçååæ¯ä»ä¹ï¼ç¸å ³å 容å¦ä¸ï¼
ä¸ãå¼éååï¼Open Closed Principleï¼OCPï¼ï¼
å½åºç¨çéæ±æ¹åæ¶ï¼å¨ä¸ä¿®æ¹è½¯ä»¶å®ä½çæºä»£ç æè
äºè¿å¶ä»£ç çåæä¸ï¼å¯ä»¥æ©å±æ¨¡åçåè½ï¼ä½¿å
¶æ»¡è¶³æ°çéæ±ã
éè¿éæ°ç¶ç±»çæ¹æ³æ¥å®ææ°çåè½åèµ·æ¥åèµ·æ¥è½ç¶ç®åï¼ä½æ¯æ´ä¸ªç»§æ¿ä½ç³»çå¯å¤ç¨æ§ä¼æ¯è¾å·®ï¼ç¹å«æ¯è¿ç¨å¤è½æ¯è¾é¢ç¹æ¶ï¼ç¨åºè¿è¡åºéçæ¦çä¼é常大ã
äºãéæ°æ¿æ¢ååï¼Liskov Substitution Principle LSPï¼ï¼
åç±»å¯ä»¥æ©å±ç¶ç±»çåè½ï¼ä½ä¸è½æ¹åç¶ç±»åæçåè½ãä¹å°±æ¯è¯´ï¼å类继æ¿ç¶ç±»æ¶ï¼é¤æ·»å æ°çæ¹æ³å®ææ°å¢åè½å¤ï¼å°½éä¸è¦éåç¶ç±»çæ¹æ³ã
ä¸ãä¾èµåç½®ååï¼Dependency Inverse Principle DIPï¼ï¼
é«å±æ¨¡åä¸åºè¯¥ä¾èµä½å±æ¨¡åï¼ä¸¤è é½åºè¯¥ä¾èµå ¶æ½è±¡ï¼æ½è±¡ä¸åºè¯¥ä¾èµç»èï¼ç»èåºè¯¥ä¾èµæ½è±¡ï¼å ¶æ ¸å¿ææ³è¦é¢åæ¥å£ç¼ç¨ï¼ä¸è¦é¢åå®ç°ç¼ç¨ã
ï¼1ï¼æ¯ä¸ªç±»å°½éæä¾æ¥å£ææ½è±¡ç±»ï¼æè 两è é½å ·å¤ã
ï¼2ï¼åéç声æç±»åå°½éæ¯æ¥å£æè æ¯æ½è±¡ç±»ã
ï¼3ï¼ä»»ä½ç±»é½ä¸åºè¯¥ä»å ·ä½ç±»æ´¾çã
ï¼4ï¼ä½¿ç¨ç»§æ¿æ¶å°½ééµå¾ªéæ°æ¿æ¢ååã
åãåä¸èè´£ååï¼Single Responsibility Principleï¼SRPï¼ï¼
åç°ç±»çä¸åè责并å°å ¶å离ï¼åå°è£ å°ä¸åçç±»æ模åä¸ã
äºãæ¥å£é离ååï¼Interface Segregation Principleï¼ISPï¼ï¼
å°½éå°èè¿åºå¤§çæ¥å£æåææ´å°çåæ´å ·ä½çæ¥å£ï¼è®©æ¥å£ä¸åªå å«å®¢æ·æå ´è¶£çæ¹æ³ã
å
ã迪米ç¹æ³åï¼Law of Demeterï¼LoDï¼ï¼
å¦æ两个软件å®ä½æ é¡»ç´æ¥éä¿¡ï¼é£ä¹å°±ä¸åºå½åçç´æ¥çç¸äºè°ç¨ï¼å¯ä»¥éè¿ç¬¬ä¸æ¹è½¬å该è°ç¨ã
ï¼1ï¼å¨ç±»çååä¸ï¼åºè¯¥å建弱è¦åçç±»ãç±»ä¸ç±»ä¹é´çè¦åè¶å¼±ï¼å°±è¶æå©äºå®ç°å¯å¤ç¨çç®æ ãã
ï¼2ï¼å¨ç±»çç»æ设计ä¸ï¼å°½ééä½ç±»æåç访é®æéã
ï¼3ï¼å¨ç±»ç设计ä¸ï¼ä¼å èèå°ä¸ä¸ªç±»è®¾ç½®æä¸åç±»ã
ï¼4ï¼å¨å¯¹å ¶ä»ç±»çå¼ç¨ä¸ï¼å°å¼ç¨å ¶ä»å¯¹è±¡ç次æ°éå°æä½ã
ï¼5ï¼ä¸æ´é²ç±»çå±æ§æåï¼èåºè¯¥æä¾ç¸åºç访é®å¨ï¼set å get æ¹æ³ï¼ã
ï¼6ï¼è°¨æ 使ç¨åºååï¼Serializableï¼åè½ã
ä¸ãåæå¤ç¨ååï¼Composite Reuse Principleï¼CRPï¼ï¼
å¦æ两个软件å®ä½æ é¡»ç´æ¥éä¿¡ï¼é£ä¹å°±ä¸åºå½åçç´æ¥çç¸äºè°ç¨ï¼å¯ä»¥éè¿ç¬¬ä¸æ¹è½¬å该è°ç¨ã
è¿7ç§è®¾è®¡ååæ¯è½¯ä»¶è®¾è®¡æ¨¡å¼å¿ 须尽ééµå¾ªçååï¼åç§ååè¦æ±ç侧éç¹ä¸åãå ¶ä¸ï¼å¼éååæ¯æ»çº²ï¼å®åè¯æ们è¦å¯¹æ©å±å¼æ¾ï¼å¯¹ä¿®æ¹å ³éï¼éæ°æ¿æ¢åååè¯æ们ä¸è¦ç ´å继æ¿ä½ç³»ï¼ä¾èµåç½®åååè¯æ们è¦é¢åæ¥å£ç¼ç¨ï¼
åä¸èè´£åååè¯æ们å®ç°ç±»è¦èè´£åä¸ï¼æ¥å£é离åååè¯æ们å¨è®¾è®¡æ¥å£çæ¶åè¦ç²¾ç®åä¸ï¼è¿ªç±³ç¹æ³ååè¯æ们è¦éä½è¦å度ï¼åæå¤ç¨åååè¯æ们è¦ä¼å 使ç¨ç»åæè èåå ³ç³»å¤ç¨ï¼å°ç¨ç»§æ¿å ³ç³»å¤ç¨ã