延續第 6、7 章 GUI 編輯器中管理檔案文字的類別。

反例:行導向介面#

許多學生選擇了行導向介面:

  • 提供讀、插入、刪除「整行」的方法
  • 內部實作簡單

但這把複雜性推給了上層

  • UI 操作幾乎不以「整行」為單位
  • 鍵盤輸入會在現有行中間插入單一字元
  • 複製、刪除選取範圍可能涵蓋多行的部分區段
  • 上層程式碼必須自己拆行、合行,才能完成 UI 行為

改善:字元導向介面#

如同 6.3 節所述,把介面改成字元導向:

  • UI 程式可以直接插入或刪除任意範圍的文字,不必拆行合行 → 變得簡單
  • 文字類別的實作變複雜:若內部仍以行儲存,就得自己處理拆行 / 合行

為什麼這樣比較好#

把拆行 / 合行的複雜性封裝在文字類別內部,整體系統的複雜度反而下降。

這就是「把複雜性往下拉」——讓一個模組多累一點,換取一群上層使用者通通輕鬆。