上一篇文章提到依賴,依賴也無所不在,而 DIP 要我們將依賴做「反轉」,是要反轉什麼?反過來依賴嗎? 當然不是,而是解除直接依賴的關係轉而去依賴於抽象介面
,使得位於較低層次的類別依賴關係的方向反了過來,大致上看起來就會像這樣。
2018-08-06
上一篇文章提到依賴,依賴也無所不在,而 DIP 要我們將依賴做「反轉」,是要反轉什麼?反過來依賴嗎? 當然不是,而是解除直接依賴的關係轉而去依賴於抽象介面
,使得位於較低層次的類別依賴關係的方向反了過來,大致上看起來就會像這樣。
DIP - Dependency Inversion Principle(依賴反轉原則)說:
依賴
於低層次的模組,兩者都應該依賴
於抽象介面。依賴
於具體實現。而具體實現則應該依賴
於抽象介面。如果是初次接觸到這段說明的朋友可能會有一個感覺,就是裡面每個字都看得懂,但是它在講什麼?要了解 DIP 要先清楚它這邊提到的依賴
是什麼?我就以我個人的理解來分享我的心得。
憶起第一次執行自己寫的程式的感動,到現在都還記得,當時用的語言是 VB,在 IDE 上開了一個 Form 拉了一個 Button,按下去之後跳出 MsgBox 顯示 "Hello World",內心不斷地給自己鼓掌「哇!我也會寫程式了。」,至今有沒有曾經後悔過走這條路已經忘記了,但是程式設計「賜我吃、賜我穿、賜我借錢可以還。」是個事實,講這些跟這篇文章的主題有什麼關係?