Bridge:主要實現的原理就是把接口和實現分離開來, 保證他們在兩個不同的類層次結構。
之所以用Bridge而不是直接繼承實現主要有兩個好處:
1,二進制兼容:假設我們的應用程序需要用到format功能,我們可能有要引用兩個第三方JAR包,formatInterface.JAR And formatImp.jar,我們程序可能只引用了formatInterface.jar中的接口,而formatImpl.jar里是什么我們根本不需要關心,因為他是formatInterface的實現,所以當他改變的時候,我們的應用程序完全不用重新修改代碼,編譯?赡芪以LINUX下用LINUXFormatImpl.jar, 再WINDOW下use WindowFormatImpl.jar, but Application will never care about it.
2. 接口與實現的分離:實現不一定實現接口的內容,就是說實現同接口之間不是一一對應的,實現可能完成最原子的操作,而接口通過持有一個實現的應用,組裝這些操作來實現接口。比如說接口是createRectangle(), 實現可能只完成了createLine的操作,然后有接口來組裝。
Composite模式則要從全局的角度考慮對象之間的關系是否滿足“樹枝”與“樹葉”的關系,如果滿足,則需要定義一個樹枝與樹葉的集合接口Tree,既包含樹枝接口add(tree)和樹葉接口getColor()。
文章來源于領測軟件測試網 http://www.k11sc111.com/