Udemy課程Design Patterns in Java 4
SOLID Design Principles-(4)Interface Segregation Principle(ISP)
Interface Segregation Principle(ISP):介面隔離原則
解釋:
最小化介面設定,避免開出過於肥胖的介面設定,導致實作類別因為部分override未確實實作等原因而造成錯誤產生
建立一個類別,以供說明用而已...
再作一個違反ISP的介面-Machine
再做一個實作上述介面的類
接著再做另一個實作類別,該類不能完全Override介面的方法
無法實作的Method可能拋出錯誤,甚至IDE會要求介面也要拋出Exception
但是我們有可能無法更改介面的原始碼,因為介面有可能來自lib jar裡
造成上述問題根本原因就在介面Machine過於肥大
所以比較好的做好是拆解這肥大的介面,ex:↓
所以實作類就可以簡單的挑要實作的介面就好
當然也有可能一次需要實作兩個介面 ex:↓
又或是在已經有拆解Printer與Scanner這種最小化介面情況下
我們可以有空間定義兩者都有的介面
然後實作