接口隔離原則-before
在上圖應用中,有多個用戶需要操作OPS類。現在,我們假設這里的User1只需要使用op1,User2只需要使用op2,User3只需要使用op3。在這種情況下,如果OPS類,User1雖然不需要調用op2和op3,但在是源代碼層次上它們也形成起來關系。這種依賴關系意味著我們對op2和op3所做的修改,即使不會影響大User1的功能,也會導致它需要重新編譯和部署。
接口隔離原則-after
修改之后User1的源代碼會依賴于UlOps和op1,但是不會依賴OPS。我們之后對OPS做的修改只要不影響到User1的功能,就不需要重新編譯和部署User1了。
任何層次的軟件設計如果依賴了不需要的東西,都會是有害的。從源代碼層次來說,這種依賴導致不必要的重新編譯和重新部署。
如果兩個類不必彼此直接通信,那么這兩個累就不應該發生直接的相互作用。如果其中給一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用。類之間的耦合越弱,越有利于復用。一個處在弱耦合的類被修改,不會對有關系的類造成波及。