一、接口隔離原則
基本介紹:客戶端不應該依賴於它不需要的接口即一個類對另一個類的依賴應該建立在最小的接口上。
案例地址:https://github.com/Simple-Coder/design-pattern
二、測試場景
①類A通過Interface1會依賴(使用)B,但是A中只會使用到接口中的1,2,3三個方法。
②類C通過Interface1會依賴(使用)D,但是C中只會使用到接口中的1,4,5三個方法。
1、根據上述類圖設計進行編寫代碼
分析:
①B、D分別實現了Interface1的5個方法
②A依賴使用B時只用到了1,2,3方法,即B實現的4,5方法可以說是白寫了,因為我們沒用到
③C依賴使用D時只用到了1,4,5方法,即D實現的2,3方法可以說也是白寫了,因為我們也沒用到
問題:
類A通過接口Interface1依賴類B,類C通過接口Interface1依賴類D,如果接口Interface1對於類A和類C來說都不是最小接口,那么類A和類D都必須實現它們不需要的方法
2、根據接口隔離原則改造
采用接口隔離原則:將接口interface1拆分為獨立的幾個接口,類A與類C分別與它們需要的接口建立依賴關系
2.1代碼實現
2.2操練一把
三、總結
1、如上述方案1,如不使用接口隔離原則,則會造成浪費,例A通過接口依賴B使用1、2、3方法,而B實現了所有方法,A卻沒有用到4、5方法,這不是浪費嘛
2、接口隔離原則:客戶端不應該依賴於它不需要的接口即一個類對另一個類的依賴應該建立在最小的接口上(接口中我用不到的方法,把接口拆分成小的接口,依賴小接口)