架構中的設計原則之介面分離原則(ISP) - 《java開發技術-在架構中體驗設計模式和演算法之美》

來源:互聯網
上載者:User

標籤:


介面分離原則    

介面分離原則的核心思想是:不應該強迫客戶程式依賴它們不需要使用的方法。英文縮寫ISP,即Interface Segregation Principle。其實介面分離原則的意思就是:一個介面不需要提供太多的行為,一個介面應該只提供一種對外的功能,不應該 把所有的操作都封裝到一個介面中。

這裡的“介面”指的不僅僅是通過interface關鍵字定義的介面,介面分為如下兩種。

  1. 對象介面。java中聲明的一個類,通過new關鍵字產生的一個執行個體,它是對一個類型的事物的描述,這也是一種介面。

  2. 類介面。這中介面就是通過關鍵字interface 定義的介面。

    也就是說,介面分離原則要求的是在一個模組中應該只依賴它需要的介面,以保證介面的小純潔。而且需要保證介面應該盡量小,即設計介面的時候應該讓介面盡量細化,不要定義太臃腫的介面(比如介面中有很多不相干的邏輯方法聲明)。

    介面分離原則與單一職責有些相似,不過不同在於:單一職責原則要求的是類和介面職責單一,注重的是職責,是商務邏輯上的劃分。而介面分離原則要求的是介面的方法盡量少,針對一個模組盡量有用。

    在使用介面分離原則的時候,需要有一些規範。

  • 介面盡量小:介面盡量小,這主要是為了保證一個介面只服務於一個子模組或者商務邏輯。

  • 介面高內聚:介面高內聚是對內高度依賴,對外儘可能隔離。即一個介面內部聲明的方法相互之間都與某一個子模組相關,且是這個子模組必須的。

  • 介面設計是有限度的:如果完全遵循介面分離原則的話,會出現一個問題,即介面的設計力度會越來越小,這樣就造成了介面數量劇增,系統複雜度一下子增加了,而不是真實項目所需要的,所以在使用這個原則的時候,還要在特定的項目中,根據經驗或嘗試去判斷,但沒有一個固定的標準。

架構中的設計原則之介面分離原則(ISP) - 《java開發技術-在架構中體驗設計模式和演算法之美》

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.