Java 什么';什么更好?SOLID-SRP及其接口
什么变体更好?SOLID-SRP还是带接口的Java 什么';什么更好?SOLID-SRP及其接口,java,solid-principles,single-responsibility-principle,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 so
class Some {
private final IValidator validator;
public Some(IValidator validator) {
this.validator = validator;
}
public void doSomething() {
if (validator.validate(data));
// do something
}
}
或
验证器只使用一次。通过编写
Validator Validator=new Validator()
实际上是在增加代码的耦合,这绝对不利于SOLID
就像@Kris在评论中所说的那样,最好的方法是使用接口而不是实际的实现——这实际上更符合多态性,而且在多态性之后,它已经是可靠的了。两者都不能编译。。我想它是
私有最终IValidator验证器
和专用最终验证器验证器
?均成功编译。我需要验证程序类的接口吗?SRP principe怎么说?您可能应该担心如何private final Validator=new Validator()在考虑固体之前,代码>不起作用-_-哦,对不起。我确实改变了问题。我总是更喜欢界面。通过这种方式,您可以在以后轻松切换到该接口的不同实现。
class Some {
private final Validator validator = new Validator();
public void doSomething() {
if (validator.validate(data));
// do something
}
}