我與同事就是否某些邏輯屬於數據訪問或業務邏輯層進行了辯論。關於分離問題的辯論(數據訪問vs業務邏輯)
這種情況是,BLL需要一些數據來處理。這些數據主要存在於數據庫中。我們希望緩存該數據(使用System.Runtime.Caching),以便在隨後的請求中快速提供。該體系結構使得DAL和BLL位於同一個盒子和不同的程序集中(同一解決方案中的項目)。所以不用擔心在電線或類似的東西上打DAL。
我的觀點是,打擊緩存與數據庫的決定是DAL關注的問題。業務邏輯層不應該關心數據來自何處,只是它獲取所需的數據。
他的觀點是數據訪問層應該是「純粹的」和「愚蠢的」,並且任何邏輯來決定打擊緩存與數據庫應該在業務邏輯層中。
在我看來,他所說的是破壞了關注點的分離,並導致圖層更緊密地耦合在一起,目標是讓事物鬆散耦合。如果它是一個特定的程序/用戶界面函數來決定數據的去向,我可以看到BLL可能想要控制的位置,但實際情況並非如此。這只是一個非常簡單的緩存場景,其中數據庫是主數據存儲。
的思考?
這可能是比較好的程序員。 –