Bridge 模式
来源:百度文库 编辑:神马文学网 时间:2024/04/26 09:00:51
From Gossip@caterpillar
Design Pattern: Bridge 模式
在Gof 的書中指到Bridge模式的目的:「將抽象部份與它的實現部份分離,使它們都可以獨立地變化。」
這句話寫得簡短,這邊再作進一步的解釋,抽象部份指的是行為方面定義,實現方面指的是與特定平台相依的代碼實現。
一個實際的例子在Gof書中有提到,假設您定義了一個IWindow介面,這個介面只定義一些抽象的繪圖行為,而不涉及平台的實作,今天您可以繼承這個類來開發適用於X Window的XWindow類,也可以繼承這個類來開發適用於Windows XP系統的WindowsXP類,為了善用系統資源,您在實作IWindow介面時,會將與系統相關的實現代碼撰寫在介面的實作中。
假設今天您繼承了IWindow介面撰寫了一個I3DWindow介面,當中擴充一個drawBox()方法用於3D圖形的繪製,簡單的說, I3DWindow介面擴充了抽象行為,為了讓實現I3DWindow的類別也能在XWindow與Windows XP兩個不同的系統中運行,您必須再度撰寫與系統相關的實現代碼。
簡單的說,抽象行為定義與平台相關實現混雜在一起了,為了將抽象部份與它的實現部份分離,使它們都可以獨立地變化,您可以使用以下的結構。
在上圖的右邊中,與平台相關的實現部份,被與右邊抽象行方面的發展分開了,左邊的抽象部份您可以一直發展下去,而不再因為綁定了平台特定實作方法,而使得整個結構越來越失去彈性。
Bridge模式的 UML 類別結構圖如下:
Design Pattern: Bridge 模式
在Gof 的書中指到Bridge模式的目的:「將抽象部份與它的實現部份分離,使它們都可以獨立地變化。」
這句話寫得簡短,這邊再作進一步的解釋,抽象部份指的是行為方面定義,實現方面指的是與特定平台相依的代碼實現。
一個實際的例子在Gof書中有提到,假設您定義了一個IWindow介面,這個介面只定義一些抽象的繪圖行為,而不涉及平台的實作,今天您可以繼承這個類來開發適用於X Window的XWindow類,也可以繼承這個類來開發適用於Windows XP系統的WindowsXP類,為了善用系統資源,您在實作IWindow介面時,會將與系統相關的實現代碼撰寫在介面的實作中。
假設今天您繼承了IWindow介面撰寫了一個I3DWindow介面,當中擴充一個drawBox()方法用於3D圖形的繪製,簡單的說, I3DWindow介面擴充了抽象行為,為了讓實現I3DWindow的類別也能在XWindow與Windows XP兩個不同的系統中運行,您必須再度撰寫與系統相關的實現代碼。
簡單的說,抽象行為定義與平台相關實現混雜在一起了,為了將抽象部份與它的實現部份分離,使它們都可以獨立地變化,您可以使用以下的結構。
在上圖的右邊中,與平台相關的實現部份,被與右邊抽象行方面的發展分開了,左邊的抽象部份您可以一直發展下去,而不再因為綁定了平台特定實作方法,而使得整個結構越來越失去彈性。
Bridge模式的 UML 類別結構圖如下:
Bridge 模式
Bridge模式
设计模式之Bridge
设计模式之Bridge
GoF设计模式之七 Bridge- -
GoF设计模式之七 Bridge- -
C#面向对象设计模式纵横谈:Bridge 桥接模式
设计模式学习笔记(八)——Bridge桥接模式
Mathematical Bridge
Bridge the Cultural Gap
魂断蓝桥 waterloo bridge
THE BROOKLYN BRIDGE
Presenting Flex Analysis Services Bridge!!
THE EAST RIVER SUSPENSION-BRIDGE
互联网网桥(Bridge)概述
42.Two Goats on the Bridge
Koreans try to bridge linguistic divide k
Hot products: Wi-FI power amp, full-bridge IC driver
An SVG framework in C# and an SVG-GDI bridge...
Intel(R) 82801 PCI Bridge -244e 是什么
一个很好玩的益智游戏--bridge craft
Photoshop CS5新功能教程:Mini Bridge扩展功能
‘船到桥头自然直’Don't cross the bridge till you get to it
模式!模式!模式!关于模式研究