英文是Interface Segregation Principle (ISP)
介面隔離原則大概有2個重點
我們拿昨天的例子來討論
我們在飛機上加了兩樣功能
滑翔跟展覽
正如昨天所說的
紙飛機不會飛
只有滑翔功能
那是他完整的繼承飛機的所有功能
所以她被迫實作所有飛機的功能
但是沒有人會用紙飛機進行飛行
因此這就違反介面隔離原則
我們應該要將飛行這件事的抽出來成一個介面
只有實作這個介面的類別才能飛行
這麼做的好處還有一個
我們以資料庫為例
假設我們今天決定用MySQL當我專案的資料庫
今天因為種種原因
我想要將MySQL換成NoSQL
例如MongoDB
但是我專案中所有對於資料庫的存取方法都是基於MySQL所編寫而成的
如果要替換資料庫就會導致我整個系統要重寫
如果我們今天對於將資料庫的存取抽離成一個介面
系統所操作的是資料庫介面的CRUD功能
而不是實體的資料庫
今天任何實作資料庫介面的資料庫
都可以輕易的替代MySQL