API 的基本功能性及便利性

API 的功能可以是比較 atomic、比較基本的,讓外部使用這些基本功能組合出它想要的東西。也可以是 API 本身即組合一些基本功能、提供較方便的功能給外部使用。這兩種特性雖然互相衝突,但都是作為 API 希望滿足的。

滿足這兩種特性的方式是將僅提供基本功能的 core API 及較方便的 API 分開。可能是以 class 或檔案區隔,甚至直接拆成不同 library。重點是較方便的 API 是使用 core API 的 public interface,就像在 core API 外再包一層,而不會 access 到 core API 的內部結構。

如此使用者就能有方便使用的 API 也能在想自行組合功能的時候使用進階的 core API。這概念類似於 UI 設計上常有的「進階」按鈕──平常設定頁只會有基本設定,按進階按鈕後才會顯示更細部的設定。