1. 程式人生 > >設計模式大全

設計模式大全

Adapter模式和Bridge模式具有一些共同的特徵。它們都給另一物件提供了一定程度上的間接性,因而有利於系統的靈活性。它們都涉及到從自身以外的一個介面向這個物件轉發請求。這些模式的不同之處主要在於它們各自的用途。Bridge模式主要是為了解決兩個已有介面之間不匹配的問題。它不考慮這些介面是怎樣實現的,也不考慮它們各自可能會如何演化。這種方式不需要對兩個獨立設計的類中的任一個進行重新設計,就能夠使它們協同工作。另一方面, Bridge模式則對抽象介面與它的(可能是多個)實現部分進行橋接。雖然這一模式允許你修改實現它的類,它仍然為使用者提供了一個穩定的介面。Bridge模式也會在系統演化時適應新的實現。由於這些不同點,
AdapterBridge模式通常被用於軟體生命週期的不同階段。當你發現兩個不相容的類必須同時工作時,就有必要使用Adapter模式,其目的一般是為了避免程式碼重複。此處耦合不可預見。相反, Bridge的使用者必須事先知道:一個抽象將有多個實現部分,並且抽象和實現兩者是獨立演化的。Adapter模式在類已經設計好實施;而Bridge模式在設計類之實施。這並不意味著Adapter模式不如Bridge模式,只是因為它們針對了不同的問題。你可能認為facade是另外一組物件的介面卡。但這種解釋忽視了一個事實:即facade定義一個新的介面,而Adapter則複用一個原有的介面。記住,介面卡使兩個
已有的介面協同工作,而不是定義一個全新的介面。