滿店香的家

          學(xué)習(xí)+實(shí)踐=進(jìn)步

          復(fù)習(xí) 接口隔離原則

           

          一、ISP簡介(ISP--Interface Segregation Principle):
          使用多個(gè)專門的接口比使用單一的總接口要好。
          一個(gè)類對(duì)另外一個(gè)類的依賴性應(yīng)當(dāng)是建立在最小的接口上的。
          一個(gè)接口代表一個(gè)角色,不應(yīng)當(dāng)將不同的角色都交給一個(gè)接口。沒有關(guān)系的接口合并在一起,形成一個(gè)臃腫的大接口,這是對(duì)角色和接口的污染。
           
          “不應(yīng)該強(qiáng)迫客戶依賴于它們不用的方法。接口屬于客戶,不屬于它所在的類層次結(jié)構(gòu)。”這個(gè)說得很明白了,再通俗點(diǎn)說,不要強(qiáng)迫客戶使用它們不用的方法,如果強(qiáng)迫用戶使用它們不使用的方法,那么這些客戶就會(huì)面臨由于這些不使用的方法的改變所帶來的改變。
           
          二、舉例說明:
          參考下圖的設(shè)計(jì),在這個(gè)設(shè)計(jì)里,取款、存款、轉(zhuǎn)帳都使用一個(gè)通用界面接口,也就是說,每一個(gè)類都被強(qiáng)迫依賴了另兩個(gè)類的接口方法,那么每個(gè)類有可能因?yàn)榱硗鈨蓚€(gè)類的方法(跟自己無關(guān))而被影響。拿取款來說,它根本不關(guān)心“存款操作”和“轉(zhuǎn)帳操作”,可是它卻要受到這兩個(gè)方法的變化的影響。

          那么我們?cè)撊绾谓鉀Q這個(gè)問題呢?參考下圖的設(shè)計(jì),為每個(gè)類都單獨(dú)設(shè)計(jì)專門的操作接口,使得它們只依賴于它們關(guān)系的方法,這樣就不會(huì)互相影了!

          三、實(shí)現(xiàn)方法:

          1、使用委托分離接口
          2、使用多重繼承分離接口

          posted on 2008-05-19 01:24 滿店香 閱讀(254) 評(píng)論(0)  編輯  收藏


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 文安县| 扬州市| 海宁市| 小金县| 邯郸县| 大新县| 焦作市| 化德县| 乐安县| 象州县| 拜城县| 偏关县| 黑河市| 浦北县| 英山县| 乌鲁木齐市| 永修县| 潮州市| 龙泉市| 收藏| 成安县| 开远市| 营山县| 曲阜市| 泰来县| 秦安县| 乐昌市| 莱西市| 香港| 奉新县| 土默特右旗| 荣昌县| 象山县| 会理县| 绍兴市| 阜南县| 大足县| 永平县| 图木舒克市| 上虞市| 砀山县|