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 关注
- 127 浏览
添加回答
举报