這篇將介紹 boxenn 與 DAL 層的依賴關係和介面。
Source 代表的是外部 gem 的 class,本系列文章使用的案例會是 ActiveRecord 的 Model
Repository 的責任是管理 aggregate 持久性和資料取得,因此在 boxenn 中定義了 4個 public method,分別是
def find_by_identity(hash)
## main logic
aggregate
end
def find_by_query(query)
## main logic
[aggregates]
end
def save(aggregates)
## main logic
end
def destroy(aggregates)
## main logic
end
ActiveRecord::Base.transaction do
repository.save(entities)
end
下一篇開始會針對每個 class 進行解說並有實際的範例 code。