定義
客戶端不應該依賴它不需要的接口;一個類對另一個類的依賴應該建立在最小的接口上。
問題由來
類A通過接口I依賴類B,類C通過接口I依賴類D,如果接口I對于類A和類B來說不是最小接口,則類B和類D必須去實現(xiàn)他們不需要的方法。

uml
解決辦法
將臃腫的接口I拆分為獨立的幾個接口,類A和類C分別與他們需要的接口建立依賴關(guān)系。也就是采用接口隔離原則。

uml
補充
說到這里,很多人會覺的接口隔離原則跟之前的單一職責原則很相似,其實不然。
- 其一,單一職責原則原注重的是職責;而接口隔離原則注重對接口依賴的隔離。
- 其二,單一職責原則主要是約束類,其次才是接口和方法,它針對的是程序中的實現(xiàn)和細節(jié);而接口隔離原則主要約束接口接口,主要針對抽象,針對程序整體框架的構(gòu)建。