服務層與資料映射器:誰應該處理複雜的查詢條件?
Nov 08, 2024 am 12:31 AM確定複雜查詢中處理條件的責任:服務層與資料映射器
在追求資料擷取與操作時,問題出現這樣的問題:誰應該承擔處理複雜查詢條件的負擔- 資料映射器還是服務層?
資料映射器
資料映射器模式規定了一個簡單的接口,主要職責是資料擷取、保存和刪除。然而,其實現細節仍有待解釋。
儘管其介面極簡,但資料映射器可以擴展以合併一些條件邏輯,例如根據特定識別碼或作者姓名檢索物件。
服務層
另一方面,服務層充當控制器和資料映射器之間的中介。它可以透過直接呼叫更具體的方法來減輕處理多個條件的複雜性,例如BookDataMapper->getByAuthorAndPublisher()。
服務層條件處理的優點
有些人主張讓服務層解析查詢條件有幾個原因:
- 降低資料映射器的複雜性。
- 將條件邏輯保留在模型層中,防止其洩漏到控制器.
資料映射器條件處理的優點
其他人則喜歡將條件邏輯集中在資料映射器中:
- 簡化服務層,使其成為純粹的中介。
- 允許資料映射器根據需要合併其他基於條件的方法。
最佳方法
最佳方法取決於特定應用和特定領域的邏輯。但是,可以考慮一些一般準則:
- 使資料映射器介面盡可能簡單,並提供諸如獲取、保存和刪除等基本操作。
- 使用域物件本身保存資料檢索的條件參數。
- 利用「告訴不要問」原則來最大限度地減少域物件和映射器之間的通訊。
- 考慮使用諸如 ArticleCollectionMapper 之類的附加結構來處理物件群組具有不同的條件。
以上是服務層與資料映射器:誰應該處理複雜的查詢條件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)