日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

基本上,把switch,用设计模式代替,肯定是bug和过度设计。想想,本来修改一个文件几行代码可以解决的问题,变成修改3-6个类才能实现一样的功能。不是傻是什么?...

發布時間:2023/12/18 asp.net 32 豆豆

?

那些迷信設計模式的人,來修改一下這個方法吧??纯茨阕罱K的代碼膨脹為幾倍。。。

?

1 public virtual PasswordChangeResult ChangePassword(ChangePasswordRequest request) 2 { 3 if (request == null) 4 throw new ArgumentNullException("request"); 5 6 var result = new PasswordChangeResult(); 7 if (String.IsNullOrWhiteSpace(request.Email)) 8 { 9 result.AddError(_localizationService.GetResource("Account.ChangePassword.Errors.EmailIsNotProvided")); 10 return result; 11 } 12 if (String.IsNullOrWhiteSpace(request.NewPassword)) 13 { 14 result.AddError(_localizationService.GetResource("Account.ChangePassword.Errors.PasswordIsNotProvided")); 15 return result; 16 } 17 18 var customer = _customerService.GetCustomerByEmail(request.Email); 19 if (customer == null) 20 { 21 result.AddError(_localizationService.GetResource("Account.ChangePassword.Errors.EmailNotFound")); 22 return result; 23 } 24 25 26 var requestIsValid = false; 27 if (request.ValidateRequest) 28 { 29 //password 30 string oldPwd = ""; 31 switch (customer.PasswordFormat) 32 { 33 case PasswordFormat.Encrypted: 34 oldPwd = _encryptionService.EncryptText(request.OldPassword); 35 break; 36 case PasswordFormat.Hashed: 37 oldPwd = _encryptionService.CreatePasswordHash(request.OldPassword, customer.PasswordSalt, _customerSettings.HashedPasswordFormat); 38 break; 39 default: 40 oldPwd = request.OldPassword; 41 break; 42 } 43 44 bool oldPasswordIsValid = oldPwd == customer.Password; 45 if (!oldPasswordIsValid) 46 result.AddError(_localizationService.GetResource("Account.ChangePassword.Errors.OldPasswordDoesntMatch")); 47 48 if (oldPasswordIsValid) 49 requestIsValid = true; 50 } 51 else 52 requestIsValid = true; 53 54 55 //at this point request is valid 56 if (requestIsValid) 57 { 58 switch (request.NewPasswordFormat) 59 { 60 case PasswordFormat.Clear: 61 { 62 customer.Password = request.NewPassword; 63 } 64 break; 65 case PasswordFormat.Encrypted: 66 { 67 customer.Password = _encryptionService.EncryptText(request.NewPassword); 68 } 69 break; 70 case PasswordFormat.Hashed: 71 { 72 string saltKey = _encryptionService.CreateSaltKey(5); 73 customer.PasswordSalt = saltKey; 74 customer.Password = _encryptionService.CreatePasswordHash(request.NewPassword, saltKey, _customerSettings.HashedPasswordFormat); 75 } 76 break; 77 default: 78 break; 79 } 80 customer.PasswordFormat = request.NewPasswordFormat; 81 _customerService.UpdateCustomer(customer); 82 } 83 84 return result; 85 }

?

轉載于:https://www.cnblogs.com/apachestorm/p/4154573.html

總結

以上是生活随笔為你收集整理的基本上,把switch,用设计模式代替,肯定是bug和过度设计。想想,本来修改一个文件几行代码可以解决的问题,变成修改3-6个类才能实现一样的功能。不是傻是什么?...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。