我試圖爲用戶類實現數據映射器模式。數據映射器模式:爲用戶模型放置checkLogin方法的位置?
如果我理解正確,業務類User不應調用任何持久性方法,而應將其放入Data Mapper類(UserMapper)中,並且映射器與數據庫接口,理想情況下使用表網關類。
我有一些問題:
我會在哪裏把checkLogin方法?用戶或UserMapper?我需要通過他的cookie來檢查當前訪問者的登錄狀態。由於用戶不能引用數據庫和會話數據存儲在那裏,我必須使用映射器類嗎?
我在哪裏放置驗證規則?我想把它們放在User類中,這樣當我實例化它時,如果數據錯誤,我會得到一個異常。不過,我需要在mapper上使用checkLogin()等方法的驗證規則。也許我不應該直接實例化新的User(),相反,我應該從數據映射器創建一個新的用戶,並在其中存儲驗證規則。你怎麼看?
看來,這樣,我結束了一個非常小的模型類和更大的數據映射類。但由於我的大部分應用程序都是數據庫交互,所以我認爲這並不壞。它是否是一種代碼味道?
謝謝。