天天看點

6大設計模式(4):接口隔離原則

接口隔離原則:

接口分兩種:

執行個體接口:Java中的類

類接口:interface定義的接口

原則的兩種定義:

1.client不應該依賴它不須要的接口

2.類間的依賴關系應該建立在最小的接口上

須要對接口進行細化。保持清純性。

接口盡量細化,同一時候接口中的方法盡量少,增強專門性。

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

1.接口要盡量小

這是原則的核心定義。可是小也是有限度的,不能違反單一 職責原則。

2.接口要高内聚

什麼是高内聚?就是提高類、接口的處理能力。降低對外的互動。

類提供一個方法。你僅僅須要知道調用這種方法就能夠實作一系列的功能,可是詳細是如何實作的就不知道了。詳細到接口隔離原則就是在接口中盡量少的釋出public方法。

3.定制服務

單獨為當中的某一子產品抽象成一個接口。

4.接口的設計是有限的

需求總是在變化的。

用書中的樣例“星探尋找美女”來進一步了解上述四個含義。

首先得有一個美女的接口和星探的抽象接口:

實作美女類和星探類:

場景類:

可是美女并不一定都是滿足長得美麗、身材好、有氣質這三個條件。僅僅滿足當中一個也能夠算是一個“美女”。僅僅隻是不是那麼完美罷了。比方說。背影殺手。

那麼詳細到這個程式我們應該怎麼去實作呢?PrettyGirl實作IPrettyGirl接口裡的所有方法,是以僅僅能對IPrettyGirl接口進行拆分、細化。拆分成兩個或幾個接口。這個視需求而定。

如果我們将美女分為氣質型美女和外形美的美女,這樣就是兩個接口。外形美女也能夠分成 (臉)長得美麗的美女和身材好的美女。這樣就是拆分成三個接口。各自是:IGoodLookingGirl、INiceFigureGirl、IGreatTemperamentGirl。

美女的接口及實作類:

星探的接口及實作類:

執行結果:

冰冰--->臉蛋非常美麗

圓圓--->身材好

芳芳--->有氣質

張三--->臉蛋非常美麗

張三--->身材好

張三--->有氣質

寫完之後本人就懵了,事實上寫的過程中就已經懵了,越寫越認為了解的有問題。怎麼會這麼麻煩。

。。