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

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