2 回答

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

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
也許這就是您想要采取的方法:
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();
}
}
}
在我看來,驗(yàn)證類應(yīng)該只檢查并返回文本是否有效。
無論如何,通過良好的命名、順序和方法,您可以提供返回有效輸入的方法。
- 2 回答
- 0 關(guān)注
- 183 瀏覽
添加回答
舉報(bào)