2013-06-04 151 views

回答

5

這可能不是一個很好的StackOverflow問題,但是因爲我是本書的技術編輯,所以我覺得我應該儘量在這裏努力。

首先讓我們來總結一下這個問題。

我們有一些代碼,提供了一個服務 - 稱之爲OriginalService,我們有一些代碼,消費服務 - 把這個代碼客戶。我們希望第二次以這樣的方式實施服務,即客戶端可以同時與OriginalServiceNewService對話,同等設施。

主教教授正在制定兩種方案之間的區別。在「彌合了」的情景你有一個現有的OriginalService客戶直接對話給它;爲了添加第二個服務,您必須對服務進行抽象。在「架橋」場景中,您知道何時設計客戶將需要與該服務的多個版本進行交談的原始服務,並從一開始就在抽象層中進行設計。

考慮例如視頻驅動程序的問題。如果您的操作系統(客戶端)知道如何與一個視頻卡(原始服務)交談,那麼該操作系統不太可能受到歡迎。相反,操作系統與驅動程序對話。每個視頻卡製造商爲其支持的操作系統製作驅動程序,現在操作系統可以與許多驅動程序通話。驅動程序在操作系統和視頻卡之間建立了一座橋樑。

如果你開始的操作系統只知道怎麼去跟一個樣的顯卡,然後你改造最重要的是駕駛系統,你在「橋樑達」的場景。

如果從一個,你會需要對硬件的抽象,並開始建設基於立即對司機的架構實現的一天,你在「橋降」的情況。

+1

謝謝你的解釋,埃裏克。我認爲「橋樑」和「橋樑」是橋樑模式的變化。現在我明白這是一個建造橋樑的場景。它只取決於我們在開始時的內容:抽象或實現。 –