一.耦合
在開發過程中,一個大的程序經常由多個人來完成,對於程序來說,a 負責的部分改動后,b 也需要改動,就是耦合,他們的關系緊密。
例如:
以下代碼的缺點是,如果汽車生產商某個汽車下架,汽車店就需要修改一次。2個點關系緊密,一動則全部都要改動。
汽車店:
如果你買 索納塔,則讓汽車生產商制造一輛索納塔
如果你買 名圖,則讓汽車生產商制造一輛名圖
如果你買的沒有,則告訴買家沒有
汽車生產商:
根據汽車店的訂單制造汽車
二.解耦
以下代碼就是解耦,將關系緊密部分獨立交給生產商負責。實際工作中則是,生產商交給你一個 api,你將訂單傳輸給他即可。 不過也有個問題,生產商的代碼方面出現問題,你這里也會異常。
汽車店:
如果你買汽車,則將訂單給'汽車生產商'的判斷程序
汽車生產商的判斷程序:
如果接收到請求為 索塔納,則制造一個索塔納並告訴汽車店 有
如果接收到請求為 名圖,則制造一個名圖並告訴汽車店 有
如果接收的請求沒有,則告訴汽車店 沒有
汽車生產商:
根據判斷程序下的訂單制造汽車