【发布时间】:2020-06-11 20:26:58
【问题描述】:
我的接口中有一个由许多类实现的方法:
public interface MyInterface {
Message createMessage(List<String> rawStrings);
}
我正在向所有 createMessage 实现添加一个验证条件:
public Message createMessage(List<String> rawStrings) {
Validate.isTrue(!rawStrings.isEmpty(), "No rawstrings present");
.....
}
有人建议我将验证条件移至接口 - 但这样做,我将失去强制执行我的接口的类来实现此方法的机会。
这看起来是个好主意吗?
default Message createMessage(List<String> rawStrings) {
Validate.isTrue(!rawStrings.isEmpty(), "No rawstrings present");
return null;
}
这是对接口中默认方法的良好使用吗?我怎样才能仍然确保实现MyInterface 的类也实现方法createMessage?
【问题讨论】:
-
这对Code Review Stack Exchange 来说可能是一个更好的问题。您可能需要查找面向方面的编程和 AspectJ。
标签: java design-patterns interface default