Ale*_*lex 2 c# asp.net-mvc refactoring
我已经沉思了几天的设计问题(有点臭的代码).也许你可以帮忙.
我的RegistrationService中有一个"登录"方法,目前看起来简化如下:
public Boolean Login(String username, String password,
out String successRedirectUrl,
out IValidationDictionary validationResults)
{
successRedirectUrl = "";
if (!Validator.IsValid(username) || !Validator.IsValid(password)) return false;
// Other logic
// Distributed login requests etc.
// Build Redirect Url if login was successful etc.
}
Run Code Online (Sandbox Code Playgroud)
好的,让我解释一下上面的代码.该方法的主返回值(布尔值)应该告诉调用者登录请求是否成功.现在,如果它成功,我需要将用户重定向到另一个Url(因此,"out"参数successRedirectUrl).如果它不成功,我需要在视图中告诉用户出了什么问题 - 因此ValidationDictionary(Modelstate).
这段代码非常难看,但很难维护.我想摆脱布尔返回类型(直接返回successRedirectUrl并检查调用方是否为空)但我觉得事情变得更加不清楚.
知道如何做得更好吗?
谢谢!