gpt4 book ai didi

java - 验证业务规则

转载 作者:行者123 更新时间:2023-11-30 08:03:10 26 4
gpt4 key购买 nike

我有一些规则来验证我的模型类 MyBean。现在,它仅由一个方法(validateMyBean)内的 ifs 链完成。我不喜欢这种方式,看起来很模糊。

验证许多业务规则的最佳方法是什么?

public class MyBean {
private int id;
private String email;
private int age;
private String country;
private double otherField;
//getter and setter
}

public class MyBeanFacade {
//database connection and other methods
}

public class MyBeanBusiness {
private MyBeanFacade facade;
private MyBean myBean;

public boolean validateMyBean() {

if(!this.myBean.getEmail().contains("@") {
return false;
}

if(this.myBean.getAge()<18 || this.myBean.getAge()>150) {
return false;
}

if(this.myBean.getCountry().startsWith("A") || this.myBean.getCountry().startsWith("B") || this.myBean.getCountry().startsWith("C") || ) {
return false;
}

if(this.myBean.getOtherField() >= 0.123) {
return false;
}

if(facade.existsEmail(myBean.getEmail())) {
return false;
}
return true;
}
}

最佳答案

将验证逻辑放入 setter 方法中,以防止设置无效值。抛出异常以拒绝给定值。这消除了对验证方法的需要,并保证验证代码将为每个设置值运行。

更好的是,通过在构造函数中获取值来消除 setter ,以保证执行所有验证。如果一个构造函数的参数太多,请使用 Builder pattern .

关于java - 验证业务规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31567472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com