接口隔離原則(Interface Segregation Principle, ISP)
目錄
解釋
SOLID原則之一,由羅伯特·C·馬丁(Robert C. Martin)提出。ISP強調應當將“胖接口”(fat
interfaces,即那些擁有太多方法的接口)拆分成更小、更專注的接口,這樣可以避免類別依賴它們不需要的接口,從而降低系統的耦合度,提高其靈活性和可維護性。
特點
- 降低耦合度:通過拆分接口,類別之間的依賴關係變得更加清晰,減少了耦合度,使系統更容易理解和維護。
- 提高系統的靈活性:當接口被細分,修改一個接口的行為或增加新的接口實現對其他接口的影響最小,從而增強了系統的靈活性。
- 促進模塊化:ISP促使開發者設計出更小的、職責單一的模塊,這些模塊可以被獨立開發和更新,從而加快開發速度。
範例
錯誤
如果想要做動物的接口,並讓動物做實現,全部放同一個街口時會造成必須實現不必要的功能
1 |
|
修正
將各功能做切分
1 |
|
在依功能做實現
1 |
|
商業案例
智慧家庭系統
在一個智慧家庭系統中,不同的設備如燈光、空調、安全攝像頭可能支持開啟/關閉、調節亮度、檢測運動等不同功能。透過將功能分解成細小的接口,各個設備只需要實現對它們有意義的接口。
插件系統
對於一個支持插件的系統,各種插件可能會提供不同的功能,如數據分析、報告生成等。通過將這些功能分解成單獨的接口,插件開發者可以只實現他們感興趣的功能,而不是被迫實現一個包含所有可能功能的大接口。
通過這種方式,接口隔離原則(ISP)有助於建立更清晰、更靈活且易於維護的系統架構。
接口隔離原則(Interface Segregation Principle, ISP)
https://shengshengyang.github.io/2024/04/01/isp/