<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] # 原則 在應用程序設計的時候,如果一個模塊包含多個子模塊,那么我們就應該小心的對該模塊做出抽象 新模塊加進來,如果要我們強迫實現所有接口方法,并且還要寫一些啞方法.這樣接口稱為胖接口或者被污染的接口,使用這些接口會給系統引入一些不當的行為,這些不當的行為可能導致資源的浪費和不正確的結果 **接口隔離原則是指,客戶端不應該被強迫實現一些他們不會使用的接口,應該把胖接口中的方法分組,用多個接口代替他,每個接口服務于一個子模塊,就是使用多個專門的接口比使用單個接口要好的多** # ISP主要觀點 ![](https://box.kancloud.cn/4083fbfc4d5e9e95b3209dc903f59b93_1287x217.png) ![](https://box.kancloud.cn/383ced8cf29919a9a6cd4febc3dcb055_935x99.png) **客戶端程不應該依賴他不需要的接口方法(功能),那依賴什么? 依賴他所需要的接口,客戶端需要什么接口就提供什么接口,把不需要的接口剔除,這就要求對接口進行細化,保證其純潔性** 可以看出ISP和SRP在概念上是有一定的交叉的.事實上,很多設計模式在概念上都有交叉,甚至你很難判斷一段代碼是屬于哪一個設計模式 **ISP強調的接口對客戶端所作出的承諾越少越好,并且做到專一. 當某個客戶程序要求發生變化,而迫使接口發生改變的時候,影響到其他客戶程序的可能性小.這實際就是接口污染的問題** # 減少接口中的污染 ![](https://box.kancloud.cn/61f87df99483046ab04447b4d573c26c_871x670.png) **如果針對客戶A的方法發生改變,客戶B和客戶C并不會受到任何影響.你可能會想,這樣接口豈不是會很多? 這個問題問的好,接口既要拆,也不能拆的太細,這有個標準就是高內聚,接口應該具備一些基本的功能,能獨立完成一個基本的任務** # 特有的方法如何實現? 根據ISP原則,這個方法可以在另一個接口的存在,讓這個'異類'同時實現2個接口 對于接口的污染,可以考慮下面這2個處理方式 1. 利用委托分離接口 2. 利用多繼承分離接口 委托模式中,有2個對象參與處理同一個請求,接受請求的對象將請求委托給另一個對象來處理,如策略模式,代理模式等中都用到了委托概念
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看