省朝夕

           

          模式第二周--橋接模式

          橋接模式:把抽象和實(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)必須整體更換的情況。那么是怎么做到的呢?是通過(guò)電線來(lái)解耦的,我們?cè)诔橄筮@一問(wèn)題時(shí),雖然沒(méi)有電線,但是有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/

          posted on 2013-04-15 02:27 hejianchao 閱讀(177) 評(píng)論(0)  編輯  收藏 所屬分類: 一周一模式


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          留言簿

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          • 1.?re: Linux-find
          • 評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
          • --hejianchao
          • 2.?re: Linux-cut
          • 看看學(xué)習(xí)下,這么好的文章居然沒(méi)人留言
          • --嬰兒游泳池
          • 3.?re: Linux-cat
          • -s 在某些場(chǎng)合還是比較有用的。
          • --eric.chenjf
          主站蜘蛛池模板: 昭通市| 罗甸县| 海口市| 噶尔县| 商丘市| 武威市| 香格里拉县| 平凉市| 讷河市| 光山县| 班戈县| 永平县| 佳木斯市| 濮阳县| 区。| 磐石市| 仪征市| 富阳市| 务川| 毕节市| 阿拉善盟| 来宾市| 政和县| 新晃| 大竹县| 贵阳市| 邢台县| 通城县| 永兴县| 晋江市| 冕宁县| 保亭| 肇源县| 成武县| 汾阳市| 拉萨市| 临湘市| 保山市| 额敏县| 突泉县| 朝阳市|