【正文】
有的調制解調器客戶程序都必須更改。DedUser只使用 Modem接口,而DedicateModem只實現(xiàn)Modem接口。他們不希望去更改許許多多的調制解調器客戶應用程序,所以完全可以讓這些調制解調器客戶程序去撥一些假 (dummy)電話號碼。它們位于一條專用連接的兩端。它很好地遵循了OCP、LSP和DIP。它深入的闡述了《Design Patterns Explained》一書中1)Design to interfaces. 2)Favor position over inheritance. 3)Find what varies and encapsulate it的三個觀點。}}ConcreteImplementorB()。and()。call//abstractionargsstaticclass///Operation)。voidMethods:overrideConcreteImplementorAclass()。{public//RefinedAbstractionvoidMethodsclassvoidMethods=ImplementorPropertiesimplementor。FieldsAbstractionclasspattern 三、必須指出的是,這個接口不一定和抽象化角色的接口定義相同,實際上,這兩個接口可以非常不一樣。 橋梁模式的結構橋梁模式【GOF95】是對象的結構模式,又稱為柄體(Handle and Body)模式或接口(Interface)模式。將兩個角色之間的繼承關系改為聚合關系,就是將它們之間的強關聯(lián)改換成為弱關聯(lián)。實現(xiàn)化抽象化給出的具體實現(xiàn),就是實現(xiàn)化。橋梁模式的用意【GOF95】在提出橋梁模式的時候指出,橋梁模式的用意是將抽象化(Abstraction)與實現(xiàn)化(Implementation)脫耦,使得二者可以獨立地變化。一、理解好這兩個原則,有助于形成正確的設計思想和培養(yǎng)良好的設計風格。作為一個過程,抽象化就是忽略一些信息,從而把不同的實體當做同樣的實體對待【LISKOV94】。在這里,脫耦是指將抽象化和實現(xiàn)化之間的耦合解脫開,或者說是將它們之間的強關聯(lián)改換成弱關聯(lián)。二、 由抽象化角色和修正抽象化角色組成的抽象化等級結構。 抽象化(Abstraction)角色:抽象化給出的定義,并保存一個對實現(xiàn)化對象的引用。 實現(xiàn)化(Implementor)角色:這個角色給出實現(xiàn)化角色的接口,但不給出具體的實現(xiàn)。 具體實現(xiàn)化(Concrete Implementor)角色:這個角色給出實現(xiàn)化角色接口的具體實現(xiàn)。Bridgeexample////Implementor//Implementorimplementor}//public{()。Implementorabstract//publicRefinedAbstractionclassoverride}}//Impl