ISP(Interface Segregation Principle)
使用多個專門的接口比使用單一的總接口要好。
一個類對另外一個類的依賴性應當是建立在最小的接口上的。
一個接口代表一個角色,不應當將不同的角色都交給一個接口。沒有關係的接口合併在一起,形成一個臃腫的大接口,這是對角色和接口的污染。
“不應該強迫客戶依賴於它們不用的方法。接口屬於客戶,不屬於它所在的類層次結構。”這個說得很明白了,再通俗點說,不要強迫客戶使用它們不用的方法,如果強迫用戶使用它們不使用的方法,那么這些客戶就會面臨由於這些不使用的方法的改變所帶來的改變。
因為接口是為客戶調用的,因此其應該是“大小尺寸合適的”,“胖”接口顯然對調用者造成累贅,ISP則用於將“胖”接口分離成多個合適的接口。下面是實現方法:
1、使用委託分離接口
2、使用多重繼承分離接口