text: 在面向物件程式設計領域中，依賴反轉原則，從而使得低層次模組依賴於高層次模組的需求抽象。該原則規定：該原則顛倒了一部分人對於面向物件設計的認識方式。如高層次和低層次物件都應該依賴於相同的抽象介面。描述.在傳統的應用架構中，低層次的元件設計用於被高層次的元件使用，這一點提供了逐步的構建一個複雜系統的可能。在這種結構下，高層次的元件直接依賴於低層次的元件去實現一些任務。這種對於低層次元件的依賴限制了高層次元件被重用的可行性。依賴反轉原則的目的是把高層次元件從對低層次元件的依賴中解耦出來，這樣使得重用不同層級的元件實現變得可能。把高層元件和低層元件劃分到不同的包/庫中的方式促進了這種解耦。由於低層元件是對高層元件介面的具體實現，因此低層元件包的編譯是依賴於高層元件的，這顛倒了傳統的依賴關係。眾多的設計模式，比如外掛，服務定位器或者依賴反轉，則被用來在執行時把指定的低層元件實現提供給高層元件。應用依賴反轉原則同樣被認為是應用了介面卡模式，例如：高層的類定義了它自己的介面卡介面僅間接的透過呼叫介面卡介面多型方法使用了低層元件，而這些多型方法則是由被適配物件以及它的低層模組所實現的。另一個例子是檯燈和按鈕的例子 。歷史.依賴反轉原則由提出，並且在數篇公開著作中被表述，包括論文《面向物件設計質量標準：對於依賴的分析》，以及一篇1996年出現在C++報道中的名為《依賴反轉原則》的文章，和《敏捷軟體開發，原則，模式和實踐》，《C#中的敏捷原則，模式和實踐》兩本書。
metadata: erhwenkuo/wikipedia-zhtw
metadata: 依賴反轉原則
metadata: https://zh.wikipedia.org/wiki?curid=3200848