PHP OO 物件導向原則:依賴反轉原則DIP
OO_Principle_DIP 物件導向有五個原則 S.O.L.I.D. : 單一職責原則 SRP (Single Responsibility Principle) 開放封閉原則 OCP (Open Closed Principle) 里氏替換原則 LSP (Liskov Substitution Principle) 介面隔離原則 ISP (Interface Segregation Principle) 依賴反轉原則 DIP (Dependency Inversion Principle) 更多物件導向的理論的學習內容會整理到 PHP OO 的進階教學: 淺談物件導向 SOLID 原則對工程師的好處與如何影響能力 再談 SOLID 原則,Why SOLID? 依賴反轉原則 DIP (Dependency Inversion Principle) 一、定義與說明: 定義: 高階模組不應該依賴於低階模組,兩者都該依賴抽象。 High-level modules should not depend on low-level modules. Both should depend on abstractions. 抽象不應該由低階模組定義。 Abstractions should not depend on details. 低階模組的實作內容應該依照抽象的定義去打造。 Details should depend on abstractions. 高階與低階,是相對關係,其實也就是 呼叫者 (Caller) 與 被呼叫者 (Callee) 。 越高階的模組接近商業邏輯(電子商務買賣交易 流程 等),越低階的模組越接近實作邏輯(讀寫資料庫的、計算金額邏輯等) 接下來用範例來講解有沒有使用依賴反轉的差異吧! 範例: 如果你有遵守前幾項原則的話,要使用依賴反轉(DIP)就會變得很簡單唷! 現在,我們來做一個電子書 e-book 閱讀器的應用程式: class Test extends PHPUnit_Framework_TestCase { function testItCanReadAPDFBook () { ...