【问题标题】:Placement of validation checks on input for an object对对象的输入进行验证检查
【发布时间】:2021-07-18 16:56:12
【问题描述】:

我可能想多了,但是我已经编写了一个程序,它将为 Employee 对象的实例执行以下操作:

Check if the input for an employeeID follows the format DDD-L where 

D is a digit 0-9, 
- is a hyphen between digits and the letter.
L is an alphanumeric A-L.

目前,我是这样写的:我为一个 Employee 对象的实例调用一个无参数构造函数,然后我要求用户输入字符串输入。

在我得到他们的输入后,我调用了一个 while 循环,针对我的 Employee 实例中的一个方法运行:

while(employee.isValidInput(input,keyboard) == false){
        System.out.println(employee.printError());

        input = keyboard.nextLine();
        employee.setEmployeeNumber(input);
    }
    System.out.println("Input valid.");

用于验证的公共和私有方法存在于 Employee 对象中,而不是在我所指的它自己的单独对象中进行验证。

TLDR 是,我的对象本身应该执行这样的验证,还是应该将其传递给某种 inputValidation 对象,该对象包含我已写入员工对象的所有验证代码?或者这是任何一种方法都有效的事情之一?如果我需要清理这个问题,请告诉我。提前致谢。

【问题讨论】:

    标签: java validation input


    【解决方案1】:

    这是一个风格问题。这可能取决于你,或者你的公司,甚至是你未来工作的公司——我曾经让一些公司坚持使用一些奇怪的代码,我就用它来赚钱 lol

    我会避免在 Employee 对象中使用它,因为它不是对象行为的一部分

    【讨论】:

    • 你知道,我也在考虑这个问题。这说得通。我会把那些东西拿出来放在别的地方。
    猜你喜欢
    • 2017-08-10
    • 1970-01-01
    • 2018-04-19
    • 2021-09-02
    • 2011-04-12
    • 1970-01-01
    • 2013-02-20
    • 2017-03-19
    • 2018-09-29
    相关资源
    最近更新 更多