【網摘】該不該用、怎麼用 Repository pattern? https://youtu.be/01lygxvbao4
1. 只在「改變狀態」的時候用 Repository ,它負責讀、寫整包 Aggregate。application 只操作 Aggregate root,用以確保「商業邏輯」(invariants)
2. 讀取的部分直接操作 ORM、DB 即可 ⬅️ 每個 use case 需要的資料都不一樣,要嘛是每個 use case 除了在 service 也必須在 repository 有一個對應 function;要嘛是寫一個很萬用的 repository 抽象層。但 query 不會變更系統狀態,我們可以用比較簡單的方式做就好。
3. 「改變狀態」跟「純查詢」的架構明顯不同,應該分開在不同 service 實作。