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()。