1. 程式人生 > >Java設計原則—接口隔離原則(轉)

Java設計原則—接口隔離原則(轉)

java設計 關系 提高 接口隔離原則 不能 設計時 而不是 根據 結構

接口隔離原則 Interface Segregation Principle

定義:

  • 客戶端不應該依賴它不需要的接口
  • 類間的依賴關系應該建立在最小的接口上

我們可以把這兩個定義概括為一句話:建立單一接口,不要建立臃腫龐大的接口。再通俗一點講:接口盡量細化,同時接口中的方法盡量少。

提供給每個模塊的都應該是單一接口,提供給幾個模塊就應該有幾個接口,而不是建立一個龐大的臃腫的接口,容納所有的客戶端訪問。

接口是我們設計時對外提供的契約,通過分散定義多個接口,可以預防未來變更的擴散,提高系統的靈活性和可維護性。

含義:

  • 接口要盡量小

這是接口隔離原則的核心定義,不出現臃腫的接口(Fat Interface),但是“小”是有限度的,首先就是不能違反單一職責原則。

根據接口隔離原則拆分接口時,首先必須滿足單一職責原則。

  • 接口要高內聚

高內聚就是要提高接口、類、模塊的處理能力,減少對外的交互。

具體到接口隔離原則就是,要求在接口中盡量少公布public方法,接口是對外的承諾,承諾地越少對系統開發越有利,變更的風險也就越少,同時也有利於降低成本。

  • 定制服務

定制服務就是單獨為一個個體提供優良的服務。

  • 接口設計是有限度的

接口的設計粒度越小,系統越靈活,這是不爭的事實。但是,靈活的同時也帶來了結構的復雜化,開發難度增加,可維護性降低,這不是一個項目或產品所期望看到的,所以接口設計一定要註意適度,這個度只能根據經驗和常識判斷,沒有一個固化或可測量的標準。

Java設計原則—接口隔離原則(轉)