哪种变体更好? SOLID - SRP还是具有接口的?
class Some {
private final IValidator validator;
public Some(IValidator validator) {
this.validator = validator;
}
public void doSomething() {
if (validator.validate(data));
// do something
}
}
OR
class Some {
private final Validator validator = new Validator();
public void doSomething() {
if (validator.validate(data));
// do something
}
}
验证器使用一次。
答案 0 :(得分:2)
通过编写Validator validator = new Validator()
,您实际上增加了代码的耦合,这绝对是针对SOLID的。
就像@Kris在评论中所说的那样,最好的方法是使用界面而不是实际的实现 - 这实际上更多地与多态性相对应,并且在它之后它与SOLID有关。