[小菜一碟] 談談物件導向設計原則中 DIP(依賴反轉原則)中的 Inversion(反轉)

上一篇文章提到依賴,依賴也無所不在,而 DIP 要我們將依賴做「反轉」,是要反轉什麼?反過來依賴嗎? 當然不是,而是解除直接依賴的關係轉而去依賴於抽象介面,使得位於較低層次的類別依賴關係的方向反了過來,大致上看起來就會像這樣。

...繼續閱讀 »

[小菜一碟] 談談物件導向設計原則中 DIP(依賴反轉原則)中的 Dependency(依賴)

DIP - Dependency Inversion Principle(依賴反轉原則)說:

  1. 高層次的模組不應該依賴於低層次的模組,兩者都應該依賴於抽象介面。
  2. 抽象介面不應該依賴於具體實現。而具體實現則應該依賴於抽象介面。

如果是初次接觸到這段說明的朋友可能會有一個感覺,就是裡面每個字都看得懂,但是它在講什麼?要了解 DIP 要先清楚它這邊提到的依賴是什麼?我就以我個人的理解來分享我的心得。

...繼續閱讀 »

[創意料理] 學會物件導向程式設計從「處理需求變化」開始

憶起第一次執行自己寫的程式的感動,到現在都還記得,當時用的語言是 VB,在 IDE 上開了一個 Form 拉了一個 Button,按下去之後跳出 MsgBox 顯示 "Hello World",內心不斷地給自己鼓掌「哇!我也會寫程式了。」,至今有沒有曾經後悔過走這條路已經忘記了,但是程式設計「賜我吃、賜我穿、賜我借錢可以還。」是個事實,講這些跟這篇文章的主題有什麼關係?

...繼續閱讀 »