面向物件設計原則 依賴倒置原則(Dependency Inversion Principle)
阿新 • • 發佈:2018-11-01
依賴倒置原則(Dependence Inversion Principle)是程式要依賴於抽象介面,不要依賴於具體實現。
簡單的說就是要求對抽象進行程式設計,不要對實現進行程式設計,這樣就降低了客戶與實現模組間的耦合。
面向過程的開發
上層呼叫下層,上層依賴於下層,當下層劇烈變動時上層也要跟著變動,這就會導致模組的複用性降低而且大大提高了開發的成本。
面向物件的開發很好的解決了這個問題
一般情況下抽象的變化概率很小,讓程式依賴於抽象,實現的細節也依賴於抽象。即使實現細節不斷變動,只要抽象不變,客戶程式就不需要變化。這大大降低了客戶程式與實現細節的耦合度。
一個應用中的重要策略決定及業務模型正是在這些高層的模組中。也正是這些模型包含著應用的特性。
但是,當這些模組依賴於低層模組時,低層模組的修改將會直接影響到它們,迫使它們也去改變。
這種境況是荒謬的。應該是處於高層的模組去迫使那些低層的模組發生改變。應該是處於高層的模組優先於低層的模組。
無論如何高層的模組也不應依賴於低層的模組。
而且,我們想能夠複用的是高層的模組。通過子程式庫的形式,我們已經可以很好地複用低層的模組了。
當高層的模組依賴於低層的模組時,這些高層模組就很難在不同的環境中複用。
但是,當那些高層模組獨立於低層模組時,它們就能很簡單地被複用了。這正是位於框架設計的最核心之處的原則
依賴倒置原則
A.高層次的模組不應該依賴於低層次的模組,他們都應該依賴於抽象。
B.抽象不應該依賴於具體實現,具體實現應該依賴於抽象。