📌 30 秒摘要(Layer 3)
企業應用(有大量業務邏輯 + 資料庫存取)的模式目錄。Fowler 把「業務邏輯該怎麼組織」與「物件如何對應到資料庫」這兩個反覆出現的難題,整理成一組有名字的解法。你今天用的 ORM(Active Record / Data Mapper)、分層架構、Unit of Work、Repository,源頭都在這裡。理解這些模式,就懂了框架(Rails、Hibernate、Prisma…)底層在做什麼。
🗺 心智圖(Canvas)
企業應用架構模式
Link to original
🧰 這本書給我的工具(即用快速工具)
- 工具-領域邏輯組織模式 — 決定「業務邏輯放哪、怎麼組織」時
- 工具-物件關聯映射模式 — 決定「物件如何對應資料庫」時
📖 完整型錄:51 個企業應用模式(詳解在 reference/)
① 領域邏輯 Domain Logic
② 資料源架構 Data Source Architectural
③ 物件關聯行為 O-R Behavioral
④ 物件關聯結構 O-R Structural
- 識別欄位 Identity Field、外鍵對應 Foreign Key Mapping、關聯表對應 Association Table Mapping、從屬對應 Dependent Mapping、內嵌值 Embedded Value、序列化大物件 Serialized LOB、單表繼承 Single Table Inheritance、類別表繼承 Class Table Inheritance、具象表繼承 Concrete Table Inheritance、繼承對應器 Inheritance Mappers
⑤ 物件關聯中繼資料 O-R Metadata
⑥ Web 表現層 Web Presentation
- 模型-視圖-控制器 Model View Controller、頁面控制器 Page Controller、前端控制器 Front Controller、樣板視圖 Template View、轉換視圖 Transform View、兩步驟視圖 Two Step View、應用控制器 Application Controller
⑦ 分散式 Distribution
⑧ 離線並發 Offline Concurrency
- 樂觀離線鎖 Optimistic Offline Lock、悲觀離線鎖 Pessimistic Offline Lock、粗粒度鎖 Coarse-Grained Lock、隱含鎖 Implicit Lock
⑨ 會話狀態 Session State
⑩ 基礎模式 Base Patterns
- 閘道 Gateway、對應器 Mapper、層超型 Layer Supertype、分離介面 Separated Interface、登錄器 Registry、值物件 Value Object、金錢 Money、特例 Special Case、外掛 Plugin、服務樁 Service Stub、記錄集 Record Set
✨ 關鍵重點(Layer 1–2)
- 領域邏輯三選項:Transaction Script(程序式、簡單)、Domain Model(物件化、複雜業務)、Table Module。
- 資料源模式:Active Record(物件自己會存取 DB,簡單)vs Data Mapper(分離物件與 DB,複雜但乾淨)。
- Unit of Work:追蹤一次交易內的變更,統一提交/回滾。
- Identity Map:同一物件在一次請求內只載入一次,避免重複與不一致。
- 分層:展現層 / 領域層 / 資料源層,各司其職。
💬 金句原文(Layer 0)
- 「模式不是拿來照抄的規則,而是幫你思考取捨的起點。」