2012-02-23 102 views
1

我不知道,如果這個問題被問過,我試圖找到這個最佳實踐登錄功能

什麼是實現返回一個賬戶對象 而如果賬號登錄功能的最佳實踐登錄不成功它將返回失敗的原因(帳戶被阻止,帳戶需要驗證,帳戶不存在,....)

目前我使用C#我實現這樣的事情,只是想確保如果有是更好的方法

AccountBo resultAcc = null; 
//this is the result account if sucessful login 

LoginStatus ls = checkUserLogin(useerName, password, ref resultAcc);  
//the return value is an enum with different possible statuses 

在此先感謝!

回答

2

我會非常謹慎使用未經我的建議,因爲「最佳實踐」,而是因爲它是完全濫用,但爲什麼不拋出異常(無論是攜帶LoginStatus類型的狀態碼成員,或者使用根據特定錯誤提供專用異常,或者甚至是兩者的組合),以防登錄失敗?

然後您「有空間」使用AccountBo對象實例作爲返回類型。

過早的「反例外」評論: 例外情況往往被過早地譴責(出於可疑的性能原因)。但是,我認爲任何真實世界的用戶/登錄檢查都會佔用CPU /週期的份額,因此解決異常問題並不值得。

+0

感謝您提供寶貴的答案,它只是整個解決方案中的策略[不使用異常],我沒有放置架構,我只是想確定是否還有其他更好的模式適用於這種情況 – 2012-02-23 10:26:10