在面向對象系統中,功能由大量對象協作完成。對象內部實現細節對系統設計者次要,對象間的協作關係才是設計核心。從類級通信到模組級交互,介面設計贯穿系統設計始終。缺乏介面意識會導致:頻繁抱怨他人修改破壞自身代碼 (介面未設計)、單模組變更引發連鎖調整 (模組介面設計不佳)。
介面 = 定義/規範/約束 與 實現的分離 (名實分離原則)。常規開發常將定義與實現合一,但規範系統設計應盡量分離。介面反映設計者對系統的抽象理解。
abstract class (抽象類)。interface (介面)。一個實體可擁有多個抽象面。抽象類與介面有本質區別:前者表達「是什麼」,後者表達「能做什麼」。
系統論視角:環境 = 系統要素所處空間與外部影響因素總和。任何介面產生於特定環境,脫離環境介面失去意義。環境變化對介面影響深遠,設計時必須考慮上下文。
UML 中的 interface 本質是「協議」,非特定語言關鍵字。具體實現可映射為 Java/CORBA/COM 介面等,但核心是系統各部分通過協議協作。
掌握面向介面編程,是從「寫代碼」進階到「做架構」的關鍵一步。