廣州高端做網(wǎng)站百度網(wǎng)首頁(yè)登錄入口
本文僅作學(xué)習(xí)筆記與交流,不作任何商業(yè)用途,作者能力有限,如有不足還請(qǐng)斧正
本系列作為七大原則和設(shè)計(jì)模式的進(jìn)階知識(shí),看不懂沒關(guān)系請(qǐng)看專欄:http://t.csdnimg.cn/mIitr,查漏補(bǔ)缺
1.依賴倒置原則 (DIP)
這個(gè)原則的核心思想是:高層模塊不應(yīng)該依賴于低層模塊,二者都應(yīng)該依賴于抽象,具體來(lái)說(shuō),依賴倒置原則建議我們通過(guò)依賴抽象(如接口或抽象類)而不是具體實(shí)現(xiàn)來(lái)降低模塊之間的耦合度
什么叫依賴?
依賴可以理解為耦合,就是兩個(gè)類之間有互相套用的關(guān)系
舉個(gè)不恰當(dāng)?shù)睦踝?/strong>
我有一臺(tái)電腦,鍵盤模塊和鼠標(biāo)模塊會(huì)互相影響, 比如我按WASD就會(huì)讓瀏覽器中的鼠標(biāo)發(fā)生移動(dòng),理論上來(lái)說(shuō)這種操作是可行的
問題來(lái)了:那我該怎么打字?所以該種情況就顯然不符合依賴倒置原則
這樣子影響,顯示不太合適,那么就應(yīng)該依據(jù)依賴倒置原則 (DIP),用接口或者抽象類去繼承實(shí)現(xiàn)一個(gè)抽象層-------輸入接口
修改后
public interface InputInterface{protected void Click();protected void Move();protected void Input();}
public class Mouse : InputInterface {void InputInterface.Click() {}void InputInterface.Input() {}void InputInterface.Move() {}
}public class Keyboard : InputInterface {void InputInterface.Click() {}void InputInterface.Input() {}void InputInterface.Move() {}
}
這個(gè)接口還可以用?接口隔離原則,將鍵盤鼠標(biāo)的不同行為分離開來(lái)C# & Unity 面向?qū)ο笱a(bǔ)全計(jì)劃 七大原則 之 接口隔離原則 (ISP) 難度:☆ 總結(jié):大接口分成小的,然后該干啥干啥-CSDN博客
我就不過(guò)多贅述了?