最近在 answer有人向我建议:
public interface Operation<R extends OperationResult, P extends OperationParam> {
public R execute(P param);
}
比这更好:
public interface Operation {
public OperationResult execute(OperationParam param);
}
但是我看不出使用第一个代码块比使用第二个代码块有任何好处......
鉴于 OperationResult
和 OperationParam
都是接口(interface),实现者无论如何都需要返回派生类,这对我来说似乎很明显。
那么您认为使用第一个代码块而不是第二个代码块有什么原因吗?
最佳答案
这样您就可以声明您的Operation
实现以返回更具体的结果,例如
class SumOperation implements Operation<SumResult, SumParam>
虽然这对您的应用程序是否有任何值(value)完全取决于情况。
更新:当然,您可以在没有通用接口(interface)的情况下返回更具体的结果,但这样您也可以限制输入参数。
关于java - 通用接口(interface)有好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4943686/