2 回答

TA貢獻1795條經驗 獲得超7個贊
當你“聞到”這應該是單獨的問題。
驗證問題
操縱/標準化問題
這將防止調用驗證時的復雜性和“奇怪”的副作用(更改數據),并且它確保驗證只關心檢查驗證而不關心“如何”格式化數據。
如果您將它們連接在一起,那么您將無法“重用”這些組件,甚至無法干凈地測試它們。它還會鼓勵您在驗證中添加更多操作和業務邏輯,并慢慢地削弱您的開發。

TA貢獻1773條經驗 獲得超3個贊
也許這就是您想要采取的方法:
public class ValidationService
{
private const int MaximumStringLength = 11;
public bool IsStringValid(string text)
{
return IsStringLengthCorrect(text) && IsStringUpper(text);
}
public bool IsStringLengthCorrect(string text)
{
return text.Length < MaximumStringLength;
}
public bool IsStringUpper(string text)
{
return text.All(x => char.IsUpper(x));
}
public string ValidateStringLength(string text)
{
if (IsStringLengthCorrect(text))
{
return text;
}
else
{
return text.Substring(0, MaximumStringLength);
}
}
public string ValidateStringUpper(string text)
{
if (IsStringUpper(text))
{
return text;
}
else
{
return text.ToUpper();
}
}
}
在我看來,驗證類應該只檢查并返回文本是否有效。
無論如何,通過良好的命名、順序和方法,您可以提供返回有效輸入的方法。
- 2 回答
- 0 關注
- 173 瀏覽
添加回答
舉報