我使用Apache POI框架导入包含30列的Excel工作表。我正在阅读每个单元格并将其插入数据库。
我需要验证每个列的不同条件,除了使用多个if else条件,并为每个列调用不同的方法还有其他方法可以解决这个问题吗?
答案 0 :(得分:3)
我对java的经验较少。可能有多种方法可以解决您的问题。但是我使用策略模式来设计一个通用的验证类,它可以用于不同类型的项目而不会出现丑陋的if-else块。虽然我不得不为不同类型的字段创建单独的验证方法,但我觉得这比if else阻塞更好。
interface IValidator<T> {
boolean validate(T field);
}
class SomeFieldOne<T> implements IValidator<T> {
public boolean validate(T field) {
print("SomeFieldOne validation");
return true; // return true/false based on validation
}
}
class SomeFieldTwo<T> implements IValidator<T> {
public boolean validate(T field) {
print("SomeFieldTwo validate");
return true; // return true/false based on validation
}
}
class Context {
private IValidator validator;
public Context(IValidator validator) {
this.validator = validator;
}
public boolean validate(String field) {
return this.validator.validate(field);
}
}
public class TestValidation {
public static void main(String[] args) {
Context context;
context = new Context(new SomeFieldOne());
print(context.validate("some field one"));
context = new Context(new SomeFieldTwo());
print(context.validate("some field two"));
// test other fields ....
// .........
}
}