Skip to main content

Ch23: Presenter 與 Humble Object

Humble Object pattern

  • It is a design pattern: 用來幫助單元測試將容易測試的東西和不容易測試的東西分開來
  • 將行為分成 module or class, one of thoe is humble
  • This humble module 包含最本質的事務,將行為中非本質的行為剔除,留下本質的事物
  • 其他模組則包含所有可被測試的行為
    • 講 humble module mock 後就可以測試

Presenter 及 View

  • Presenter 接受資料,包成 View model,告知 View 顯示資料的內容
  • View 將 View model 描述的資料載入到螢幕
  • View 應該被剔除所有 use case 的邏輯,只有最簡單的顯示邏輯 ex 負數要紅色,所以在這個案例裡面 View 是 humble object

My example IRepository

  • Repository 只負責對 DB CRUD
  • Use case 的 Unit test 使用 stub 出的 Repository 確認 use case 的 flow as expect

測試和架構

  • 一個好的架構應該具備可測性。
  • 當我們嘗試去拆分可測與不可測時其實就是在定義架構的邊界。

資料庫匝道

  • 我的理解就是 Repository or unit of work

Data mappers(資料映射器)

  • ORM (X)
  • 將資料從 RD table 載到資料結構
  • 我認為所有需要跨越邊界傳遞的資料都需要 data mapper,in ch22 資料如何跨越邊界提到:內部不應了解外圈的邏輯,所以網內呼叫的東西應該經過 data mapper,return 的東西也是

Services Listeners(服務監聽器)

  • 完全看不懂

總結

  • 在跨越邊界時使用 Humble Object pattern 可以增加系統的測測性。

bgm: Where's My Love by SYML