Nik*_*las 5 java oop coding-style
目前,我尝试着考虑 OO 原则来设计一些东西。因此,假设在处理用户输入之前,我需要对其进行验证。根据 OO,单独的 Validator 类将是正确的方法。这将如下所示:
public class Validator{
public void validate(String input) throws ValidationException{
if (input.equals("")) throw new ValidationException("Input was empty");
}
}
Run Code Online (Sandbox Code Playgroud)
然后,我之前通过依赖注入获得验证器对象的处理类将调用 validator.validate(input)
这个设计的一个好处是,
但是,我怀疑验证器的设计。根据 OO,它错过了某种状态。通过这种设计,它就像 util 类,而验证方法可以是static. 我读了很多次(静态)Util 类是糟糕的 OO 设计。那么,如何在保持我提到的两个优势的同时,通过更多的 OO 来做到这一点呢?
PS.: 也许,OO 只是解决这类问题的糟糕方法。但是,我想看看 OO 解决方案的样子并形成我自己的意见。
您的示例中的验证器没有状态(并且不需要任何状态),但另一个验证器可能需要一个状态(例如使用格式):
例子:
public class RegExValidator {
private Pattern pattern;
public RegExValidator(String re) {
pattern = Pattern.compile(re);
}
public void validate(String input) throws ValidationException {
if (!pattern.matcher(input).matches()) {
throw new ValidationException("Invalid syntax [" + input + "]");
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1353 次 |
| 最近记录: |