我有一個n層應用程序,其中包括數據訪問層(DAL)和業務邏輯層(BLL)。我在用來填充我的對象的DAL中使用SQL查詢和存儲過程。DAL中的默認排序順序是否違反了關注點分離
因此,這裏是我的問題:
是否在我的SQL查詢的ORDER BY
條款違反了關注點分離?
一方面,似乎排序邏輯屬於業務層,因爲它是我們的業務規則,它決定了我們爲什麼要按特定順序顯示數據。另外,我們可能希望以多種方式顯示相同的數據。此外,我的數據訪問代碼不應該不知道如何顯示的問題?
另一方面,數據庫通常比應用程序代碼更有效地對數據進行排序,所以出於性能方面的考慮,在BLL中進行排序時會有ORDER BY子句的激勵。另外,我不確定是否在DAL中指定默認排序順序確實違反了關注點分離。記錄必須以某種方式從數據庫中提取出來。爲什麼不根據最常見的情況對它們進行分類?在我們需要與默認不同的排序順序的情況下,我們可以通過BLL中的某種方法進行排序。
不知道我是否會反對那種存在,但個人而言,我認爲我的業務邏輯依賴於來自我的訪問層的排序會感到不舒服。 –
@ChadSchouggins不知道我關注。你的意思是你不相信誰會在DAL中包含排序邏輯? –