我想實現基本的審覈系統,用戶可以登錄,更改密碼和電子郵件等如何實現業務層
我要審覈的功能都在業務層審計我想創建一個Audit對象來存儲函數被調用的日期時間,包括結果。
我最近參加了一個會議,其中一個會議是精心設計的Web應用程序,我試圖實現一些想法。基本上我使用Enum來返回函數的結果,並使用switch語句來更新該層中的UI。這些功能使用了一個早期的回報,它不會留下任何時間來創建,設置和保存審計。
我的問題是其他人在審覈業務功能時採取了哪些方法,如果你有像我這樣的功能,你會採取什麼方法(如果你說的話我會聽,但我會脾氣暴躁)。
代碼看起來有點像這樣:
function Login(string username, string password)
{
User user = repo.getUser(username, password);
if (user.failLogic1) { return failLogic1Enum; }
if (user.failLogic2) { return failLogic2Enum; }
if (user.failLogic3) { return failLogic3Enum; }
if (user.failLogic4) { return failLogic4Enum; }
user.AddAudit(new (Audit(AuditTypeEnum LoginSuccess));
user.Save();
return successEnum;
}
我可以擴大if語句來創建每一個新的審計,但隨後的功能開始變得混亂。我可以在switch語句的UI層中執行審計,但這似乎是錯誤的。
難道把所有的東西都貼在終端的try catch上真的很糟糕嗎?用finally來創建Audit對象並在其中設置信息從而解決早期返回問題?我的印象是,最後是清理而不是審計。
我的名字是大衛,我只是想成爲一個更好的代碼。謝謝。
嗨,閱讀關於面向方面的編程,它會與會話的其他方面一起敲響鈴聲。在整個業務層幾乎靜靜地注入沒有業務邏輯,所以我會看看這個,謝謝。 –