1. 程式人生 > >面向物件設計原則 依賴倒置原則(Dependency Inversion Principle)

面向物件設計原則 依賴倒置原則(Dependency Inversion Principle)

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