通用做法在文字類別與 UI 類別之間提供了更乾淨的分離,因此資訊隱藏更好

通用做法的具體效益#

  • 文字類別不需要知道 UI 細節(例如 backspace 鍵怎麼處理)
  • UI 細節封裝在 UI 類別裡
  • 新增 UI 功能時,不必到文字類別新增支援方法
  • UI 開發者只需學少數幾個簡單的方法,這些方法可以重複用於各種用途 → 認知負擔降低

「假抽象」的識別#

原本專用版的 backspace 是個典型的假抽象(false abstraction)

  • 表面看似把「刪了哪些字元」這件事藏起來
  • 但 UI 模組真的需要知道這件事
  • UI 開發者最後還是會去讀 backspace 的程式碼確認行為
  • 把方法塞進文字類別,反而讓 UI 開發者更難拿到他們需要的資訊

設計時的判斷標準#

軟體設計的核心問題之一:誰需要知道什麼?什麼時候需要?

  • 當細節重要時 → 明確、顯而易見地呈現(例如修訂版的 backspace 實作)
  • 把這類細節藏在介面背後只會製造模糊(obscurity)