我希望对系统的用户有所帮助,所以在测试之前我会稍微清理输入是否可以使用。所以我有这样的流程:
现在我想以一种漂亮的OO方式(IoC,接口,可测试,没有静态,你知道)这样做。任何想法如何为此组织一个类结构?分别使用Cleaner和Parser / Validator类,或者将它们作为方法放在数据类本身中是否合适?感谢您对此有任何帮助或讨论,如果答案是在C#中,请多多谢意!
答案 0 :(得分:3)
我赞赏你考虑考虑易用性。但是,看看你的例子,像这样清理输入是一个坏主意。作为程序员,您假设您在输入无效内容时知道用户想要输入的内容。这是不可能的。您最好使用经过验证的方法,从标准验证器(如正则表达式验证器)中显示有用的友好消息。
你必须假设如果用户输错了,他们要么
对于选项1或3,您最好向用户提供有用的消息并让他们重新输入输入。对于选项3,您可以通过不使用最佳实践来鼓励潜在的攻击者。
答案 1 :(得分:1)
我同意David Stratoon的说法,这通常不是一个好主意,但选择最终是你的。
我个人会将这些方法编写为String类的扩展方法。在这种情况下,您的方法将显示为System.String实例方法的一部分。
InputTextbox.Text.ParseNumerics();
public static int ParseNumerics(this String str)
{
//return parsed string
}