OOP遵照:依賴倒置原則(DIP)
依賴倒置(Dependence Inversion Principle)原則講的是:要依賴于抽象,不要依賴于具體。
簡單的說,依賴倒置原則要求客戶端依賴于抽象耦合。原則表述:phpma開源 羅江游魚
抽象不應當依賴于細節(jié);細節(jié)應當依賴于抽象;
要針對接口編程,不針對實現(xiàn)編程。
反面例子:
缺點:耦合太緊密,Light發(fā)生變化將影響ToggleSwitch。
解決辦法一:
將Light作成Abstract,然后具體類繼承自Light。
優(yōu)點:ToggleSwitch依賴于抽象類Light,具有更高的穩(wěn)定性,而BulbLight與TubeLight繼承自Light,可以根據"開放-封閉"原則進行擴展。只要Light不發(fā)生變化,BulbLight與TubeLight的變化就不會波及ToggleSwitch。
缺點:如果用ToggleSwitch控制一臺電視就很困難了??偛荒茏?span lang="EN-US">TV繼承自Light吧。
優(yōu)點:更為通用、更為穩(wěn)定。
結論:
使用傳統(tǒng)過程化程序設計所創(chuàng)建的依賴關系,策略依賴于細節(jié),這是糟糕的,因為策略受到細節(jié)改變的影響。依賴倒置原則使細節(jié)和策略都依賴于抽象,抽象的穩(wěn)定性決定了系統(tǒng)的穩(wěn)定性。
posted on 2008-12-22 21:34 肥仔 閱讀(1630) 評論(0) 編輯 收藏 引用 所屬分類: OOP