Недавно в ответе мне было предложено, что это:
public interface Operation<R extends OperationResult, P extends OperationParam> {
public R execute(P param);
}
Лучше, чем это:
public interface Operation {
public OperationResult execute(OperationParam param);
}
Однако я не вижу никакой выгоды в использовании первого блока кода по сравнению со вторым ...
Учитывая, что и OperationResult
, и OperationParam
являются интерфейсами, разработчик должен в любом случае возвращать производный класс, и это кажется мне совершенно очевидным.
Так вы видите какую-либо причину использования первого блока кода над вторым?