橋接模式:
把抽象和實現解耦,使得它們可以獨立地變化。十分常見,可能你已經用到了,但是還不知道它就是這種模式。
類圖:

舉例:
家里的家用電器,它們都是由開關控制的。假如電器是:電燈和電扇,而開關有圓形開關,方形開關等樣式,那么電器與開關的組合方式,類似笛卡爾積。此外,任何時候,我們都可以在不更換開關的情況下換掉燈泡,也可以在不接觸燈泡或者風扇的情況下更換開關,而不會存在燈和開關必須整體更換的情況。那么是怎么做到的呢?是通過電線來解耦的,我們在抽象這一問題時,雖然沒有電線,但是有OOD的封裝。
可以定義抽象開關類:Switch,有待實現的方法:on(),off(),然后定義圓形開關CircleSwitch,SquareSwitch都繼承自抽象Switch。同樣我們抽象出IElectricalEquipment電器,有powOn(),powerOff()方法,然后定義點燈Light和電扇Fan類實現IElectricalEquipment接口。現在需要讓電器與開關相連,可以采用:抽象類Switch中,持有IElectricalEquipment電器接口,也就是按照上面的類圖可以實現電器與開關的解耦,并符合OCP原則。代碼見:https://github.com/hejianchao/Patterns-in-Java 。
推薦:http://blog.163.com/xiaokangzhijia@126/blog/static/1659548562010111843618596/