天天看點

六大設計原則 ——接口隔離原則

接口隔離就是單一接口,不要建立臃腫龐大的接口。再通俗一點就是接口盡量細化,同時接口方法盡量少。接口隔離原則和單一職責原則好像有相似性,但接口隔離原則與單一職責的審視角度是不相同,單一職責要求的是類和接口職責單一,注重職責,這是業務邏輯上的劃分,而接口隔離原則要求接口的方法盡量少。例如一個接口的職責可能包含10個方法,這是個方法都在一個接口中,并且提供多個多個子產品通路,各個子產品按規定的權限來通路,在系統外通過文檔限制“不使用的方法不要通路”,按照單一職責原則是允許的,按照接口隔離原則是不允許的,因為要求“盡量使用多個專門的接口”。專門接口是指什麼?就是提供給每個子產品的應該都是單一接口,提供給幾個子產品就應該有幾個接口,而不是建立一個龐大的臃腫的接口,容納所有的用戶端通路。

接口隔離原則是對接口進行規範限制,其包含以下4層含義:

1.接口盡量小

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

2.接口要高内聚

高内聚就是提高接口、類、子產品的處理能力。接口是對外的承諾,承諾越少對系統的開發越有利,變更的風險也越少,同時也有利于降低成本。

3.定制服務

一個系統内的子產品必然會有耦合,有耦合就要互相通路接口,我們設計時就需要為各個通路者定制服務,隻提供通路者需要的方法。

4.接口設計是有限度的

接口的設計粒度越小,系統越靈活,這是不争的事實。但靈活的同時也帶來了結構的複雜變化,可維護性降低,這不是一個項目或産品所期望看到的,接口設計一定要注意适度。

繼續閱讀