什么变体更好? SOLID - SRP和接口

时间:2015-06-15 12:10:36

标签: java solid-principles single-responsibility-principle

哪种变体更好? 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
    }
}

验证器使用一次。

1 个答案:

答案 0 :(得分:2)

通过编写Validator validator = new Validator(),您实际上增加了代码的耦合,这绝对是针对SOLID的。

就像@Kris在评论中所说的那样,最好的方法是使用界面而不是实际的实现 - 这实际上更多地与多态性相对应,并且在它之后它与SOLID有关。